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

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

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

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

begin
  writeln(ChrAnsi(128));
end.

В 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.

1 симпатия

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

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

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

Русская Windows10

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

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

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

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

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

Не знаю :frowning:

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

ProgrammRunner.pas и Pause.pas

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

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

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

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

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