русские символы в таблице ascii


#1

Добрый день! Объясните, пожалуйста, как в паскале абц работать с русскими символами и с таблицей ascii? Вместо русских символов выводятся знаки вопроса. Конструкции типа begin write(#128); end. тоже выдают либо знак вопроса, либо прямоугольник. Что и где надо прописать? Может есть какая-то директива для компилятора? В free pascal такой проблемы нет, но ученики кривляются когда её видят. Да и мне самому стало интересно.


#2

Относительно недавно стандартной кодировкой стал юникод(если я всё правильно понимаю)

Или в конце концов если вы так прямо любите эту кодировку то:

begin
  writeln(ChrAnsi(128));
end.

#3

В PascalABC.NET символы хранятся в формате Unicode:

begin
  Print('А'.Code)
end.

Будет выведено 1040 - код русской заглавной буквы А

Free Pascal - устаревшая система, где символы однобайтные.

С Вашими учениками можно попробовать повыводить символы в графические окно - там многие отображаются правильно:

uses GraphABC;
begin
  Font.Size := 14;
  var n := 8500;
  for var i := n to n+500 do
    Print(Chr(i))
end.


#4

Здравствуйте. Надеюсь, не вызову нареканий в духе: новый вопрос - новая тема. У меня почти то же, консоль заканчивается символами вопроса вместо фразы “Программа выполнена, нажмите любую клавишу”. PABC.Net v3.3 (1547) и впервые установленная (пара дней) Win10 Pro (1709).

Как справить? Спасибо


#5

Windows русская или английская?


#6

Русская Windows10


#7

А попробуйте cmd запустить, будет ли оно русскими буквами писать? image


#8

Можно писать и по русски и по английски меняя раскладку.


#9

Кстати, а откуда берётся это “Программа выполнена, нажмите любую клавишу”, его ведь вроде убрали… Нет? У меня его нету, в финализации PABCSystem есть только закрытие потоков ввода/вывода.


#10

Ну, у нас тоже русская Windows 10 и всё отображается верно. Мы просто вызываем консольное окно - ничего такого не делаем. У Вас вот в cmd шрифт другой установлен. Может, в том шрифте у Вас русских букв нет?


#11

Ну я его тоже вызываю, запуская по Shift+F9, но после выполнения программа просто завершается, ничего не выписывая. Запускал я программу из этого сообщения.


#12

Не знаю :frowning:


#13

А где находится часть программы которая должна после завершения программы выписывать это и ожидать? Можете скинуть исходники PABCSystem?


#14

ProgrammRunner.pas и Pause.pas


#15

Кхм, ну во первых у меня есть только файлы ProgrammRunner.exe и Pause.exe, а во вторых как именно вы запускаете? В смысле что надо делать чтоб эти файлы как то задействовались? Это какой то другой запуск, не Shift+F9 из редактора?


#16

Ну, я не знаю, как это делается, это делали другие разработчики. Вы спросили где - я написал. Разбирайтесь. Установите Студию. И экспериментируйте. Но непонятно, что делать - у Вас и у меня всё работает


#17

Из всего вами сказанного я не понял, что мне делать? Какие шрифты доустанавливать? Или возвращаться к семерке?


#18

Мы не знаем, почему не работает. А если в это окно программой вывести русский текст - выводит?


#19

Прошу прощения за задержки, не бывает возможности ответить. Как работает - представляю демонстрацию