|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - Некорректный вывод в консоль Паскаль программы |
|
Разное - Некорректный вывод в консоль Паскаль программы
|
Новый участник Сообщения: 42 |
Профиль | Сайт | Отправить PM | Цитировать Здравствуйте.
Есть программа написанная на Turbo Pascal, и работающая в текстовом режиме. В консоли Windows 80х25 всё работает хорошо. Я хотел её ещё скомпилировать под Linux используя Free Pascal. Скомпилировать удалось, но выводит информацию в терминале криво. Где то на 45-50м символе строка обрывается и переносится на другую/или вообще не переносится, причём последний символ в месте разрыва либо исчезает либо крякозябром отображается. В остальном вроде нормально функционирует. Терминал в Linux достаточно широкий (90 символов), а моя строка занимает макс. 65. Т.е. места ещё хватает. Для вывода используются функции Write,WriteLn. Кодировка UTF-8, русские символы. В чём может быть проблема и как решить? Есть идея TextMode пробовать, хотя не уверен что поможет. |
|
Отправлено: 18:49, 10-09-2013 |
Новый участник Сообщения: 42
|
Профиль | Сайт | Отправить PM | Цитировать Textmode испытал, как и думал - не помогло.
TextMode(CO80) продлил строку аж на 2 символа! CO80+Font8x8 - вообще не выводит, ещё пустые строки вставляет. Проверял значение константы LastMode - она равна 3, т.е. инициализируется нужный режим 80х25, но строка почему-то переносится Неужели никто не может подсказать, как это можно исправить? |
Отправлено: 17:16, 11-09-2013 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 121
|
Профиль | Отправить PM | Цитировать Скорее всего проблема с обработкой UTF-8. Один символ UTF-8 воспринимается writeln как 2 символа ASCII вот и выводятся чудеса. Посмотрите документацию по вашей версии FPC, возможно там Unicode вобще не поддерживается.
|
Отправлено: 09:49, 12-09-2013 | #3 |
Новый участник Сообщения: 42
|
Профиль | Сайт | Отправить PM | Цитировать Цитата torauma:
Версия 2.2.4 В документации написано, что есть поддержка UTF8, причём по умолчанию. Может мне в 1251 сделать, но надо как-то на время выполнения программы задать эту кодовую страницу в терминале. Как это сделать? SetConsoleOutputCP - это только на Win-платформах кажется работает. |
|
Отправлено: 19:06, 14-09-2013 | #4 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - Многократное выполнение программы на паскаль | Паркан | Программирование и базы данных | 6 | 25-03-2013 08:53 | |
CMD/BAT - [решено] Некорректный разбор строки | RedScorpio | Скриптовые языки администрирования Windows | 5 | 03-06-2011 17:52 | |
PowerShell - Вывод нумерации элементов массива в консоль | tarasov.evgeny | Скриптовые языки администрирования Windows | 0 | 12-04-2011 13:36 | |
PowerShell - Сбор сведений на удаленных компьютерах и вывод в консоль | tarasov.evgeny | Скриптовые языки администрирования Windows | 2 | 18-03-2011 17:19 | |
C/C++ - bat & cmd - сокрытие окна и вывод данных консоли в интерфейсе нашей программы | crashtuak | Программирование и базы данных | 5 | 07-05-2009 16:40 |
|