Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - Некорректный вывод в консоль Паскаль программы

Ответить
Настройки темы
Разное - Некорректный вывод в консоль Паскаль программы

Новый участник


Сообщения: 42
Благодарности: 1

Профиль | Сайт | Отправить 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
Благодарности: 1

Профиль | Сайт | Отправить PM | Цитировать


Textmode испытал, как и думал - не помогло.
TextMode(CO80) продлил строку аж на 2 символа! CO80+Font8x8 - вообще не выводит, ещё пустые строки вставляет. Проверял значение константы LastMode - она равна 3, т.е. инициализируется нужный режим 80х25, но строка почему-то переносится
Неужели никто не может подсказать, как это можно исправить?

Отправлено: 17:16, 11-09-2013 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


Сообщения: 121
Благодарности: 35

Профиль | Отправить PM | Цитировать


Скорее всего проблема с обработкой UTF-8. Один символ UTF-8 воспринимается writeln как 2 символа ASCII вот и выводятся чудеса. Посмотрите документацию по вашей версии FPC, возможно там Unicode вобще не поддерживается.
Это сообщение посчитали полезным следующие участники:

Отправлено: 09:49, 12-09-2013 | #3


Новый участник


Сообщения: 42
Благодарности: 1

Профиль | Сайт | Отправить PM | Цитировать


Цитата torauma:
Скорее всего проблема с обработкой UTF-8. Один символ UTF-8 воспринимается writeln как 2 символа ASCII вот и выводятся чудеса. Посмотрите документацию по вашей версии FPC, возможно там Unicode вобще не поддерживается. »
Точно, так и есть. Если все символы Юникодные, то хватает ровно 40, а если все чистая латиница, то 80 - нормально. Ну а как это решить? Ведь другие программы в терминал нормально выводят, хотя и в юникоде.
Версия 2.2.4 В документации написано, что есть поддержка UTF8, причём по умолчанию.
Может мне в 1251 сделать, но надо как-то на время выполнения программы задать эту кодовую страницу в терминале. Как это сделать?
SetConsoleOutputCP - это только на Win-платформах кажется работает.

Отправлено: 19:06, 14-09-2013 | #4



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - Некорректный вывод в консоль Паскаль программы

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - Многократное выполнение программы на паскаль Паркан Программирование и базы данных 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




 
Переход