Кодировка в окне ide

Форум для изучающих FPC и их учителей.

Модератор: Модераторы

Re: Кодировка в окне ide

Сообщение Vadim » 21.09.2011 12:48:31

informat писал(а):Нужно написать функцию конвертер. Пусть называется toAnsi(string). И использовать её в выводе write(toAnsi('Руский текст')).
Все трудности можно превратить в задачи, что будет способствовать более глубокому пониманию.

Боюсь, это Вы не поняли проблему. ;) У человека проблема была именно в отсутствии символов псевдографики, которые рисуют рамочки. В кодировке ANSI таких символов псевдографики нет. Если не верите - проверьте сами.
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Кодировка в окне ide

Сообщение informat » 22.09.2011 06:52:36

Vadim писал(а):
informat писал(а):Нужно написать функцию конвертер. Пусть называется toAnsi(string). И использовать её в выводе write(toAnsi('Руский текст')).
Все трудности можно превратить в задачи, что будет способствовать более глубокому пониманию.

Боюсь, это Вы не поняли проблему. ;) У человека проблема была именно в отсутствии символов псевдографики, которые рисуют рамочки. В кодировке ANSI таких символов псевдографики нет. Если не верите - проверьте сами.


Видимо я действительно не совсем понял,зачем человеку так мучиться, если этот код
Код: Выделить всё
Const
  r1=#201;
  r2=#205;
  r3=#187;
  r4=#200;
  r5=#188;
begin
  writeln('╔═╗');
  writeln('╚═╝');
  writeln(r1,r2,r3);
  writeln(r4,r2,r5);
end.

выдаёт рамочки.
Аватара пользователя
informat
новенький
 
Сообщения: 62
Зарегистрирован: 27.10.2010 09:44:20
Откуда: http://informat.name

Re: Кодировка в окне ide

Сообщение kirill » 22.09.2011 07:48:18

Н-да.. Видимо без скриншотов никак.

Написал программу в FP. Все русские буквы выглядят красиво.
Изображение
Отлично.. Теперь собираем и проверяем, как она работает... Ой, что это? Что я тут должен ввести?
Изображение

Н-да.. С кодировками что-то не так... Ладно, в фаре кодировку файла меняем с 866 (DOS) на 1251 (ANSI). Запускаем FP. Н-да.. Теперь не понятно, что у меня написано во writeln
Изображение
Так, пойдем по-другому пути. А если в консоли перед запуском FP поменять кодовую страницу на ANSI?!.... Отлично.. Я теперь могу прочитать, что написано во writeln, но что с псевдографикой ide?! Правильно! Ее нет не в кодовой странице 866.
Изображение

И вопрос стоит кто как решает эти танцы с бубном. Пока последний вариант самый действенный, который решает проблему с русским языком, но минус - ломает псевдографику в IDE.
kirill
новенький
 
Сообщения: 22
Зарегистрирован: 25.10.2010 19:40:45
Откуда: Kaliningrad, RF

Re: Кодировка в окне ide

Сообщение informat » 23.09.2011 06:47:47

kirill писал(а):Н-да.. Видимо без скриншотов никак.

Написал программу в FP. Все русские буквы выглядят красиво.
Изображение
...
И вопрос стоит кто как решает эти танцы с бубном. Пока последний вариант самый действенный, который решает проблему с русским языком, но минус - ломает псевдографику в IDE.


А рамки на первом снимке какие?
Это и должно быть сигналом, что есть проблемы.

Вот цитата первого поста:
...
Когда пишу текст по-русски в ide (fp) он сохраняется в досовской кодировке (cp866). При этом весь текст в консоле выводится в cp1251 (виндовой ansi кодировке).

Зачем так делать?

Раз ide (fp) все делает в досовской кодировке (cp866), то для чего Вам cp1251?
Аватара пользователя
informat
новенький
 
Сообщения: 62
Зарегистрирован: 27.10.2010 09:44:20
Откуда: http://informat.name

Re: Кодировка в окне ide

Сообщение kirill » 23.09.2011 07:45:59

informat писал(а):Раз ide (fp) все делает в досовской кодировке (cp866), то для чего Вам cp1251?

Чтобы не получилось как на третьем рисунке, когда при запуске программы не понятно что выводится.
kirill
новенький
 
Сообщения: 22
Зарегистрирован: 25.10.2010 19:40:45
Откуда: Kaliningrad, RF

Re: Кодировка в окне ide

Сообщение Vadim » 23.09.2011 09:11:57

kirill писал(а):Чтобы не получилось как на третьем рисунке, когда при запуске программы не понятно что выводится.

Если у Вас консоль работает в кодировке CP866, то и тексты в CP866 всегда будут выводиться понятными.
Честно говоря, Ваша проблема с множеством перекодировок мне представляется надуманной. Типа, как в анекдоте - сами себе выдумываем трудности, а потом их сами преодолеваем. :) Поверьте старому программисту - я очень много пишу утилит для консоли и ни разу у меня проблем с кодировками не было. А всё почему? Потому, что консоль работает в СР866 и тексты программ я пишу в СР866. Вы, почему-то, так делать упорно не хотите, а потом плачете, что в ANSI у Вас рамок нет. И не будет, пока Вы с ANSI не слезете. Этот задрипаный ишак (ANSI-кодировка) уже полный анахронизм, чего Вы за него цепляетесь то?
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Кодировка в окне ide

Сообщение kirill » 23.09.2011 12:36:44

Вадим, да. не цепляюсь я...
Что я сделал.
У меня есть FAR 2.x.
Установил последний FP 2.4.4.
Так как в маленьком окне работать уже не привык, настройки размеров окон не делал.
В FAR'е сделал привязку для файла pas и pp запускать FP IDE.
Создал файл в FAR с кодировкой OEM. Сохранил.
Написал код
Код: Выделить всё
program helloworld;

uses crt;

begin
  writeln('Привет, Мир!');
  readln;
end.

Собрал (F9), Запустил (Ctrl+F9) кракозяблы. Вышел из IDE. Запускаю exe'шник из фара - те же кракозяблы.
Ок. Предположим проблема в FAR.
Запускаем IDE через ярлык. Собираем (F9), Запускаем (Ctrl+F9) - опять кракозяблы... Откуда у вас в винде (начиная с XP SP3 точно) кодировка 866 ? Если консоль в винде 1251.
kirill
новенький
 
Сообщения: 22
Зарегистрирован: 25.10.2010 19:40:45
Откуда: Kaliningrad, RF

Re: Кодировка в окне ide

Сообщение Сквозняк » 24.10.2011 05:48:02

Может уже и поздно, но не совсем понятно, зачем в винде запускать редактор в фаре и мучаться с двумя восьмибитными кодировками. Из explorer.exe редактор fp.exe, насколько я помню, запускается и одна из восьмибитных кодировок с русскими буквами там работает. Одной вполне достаточно. Если нужно печатать в другой кодировке, то напишите функцию для перекодирования и дело с концом. Я так в линуксе пишу в IBM866 кодировке а в консоль writeln и write выводят utf8.
Если важен текст на всю ширину консоли с кодировкой utf8, а вес бинарника не критичен, то не нужно использовать модуль CRT. Если в консоли 8 битная кодировка, то используйте, никто вам не запрещает - во избежание утечки процессорной мощности обычно нужно использовать delay или sleep а у них ого какие зависимости.
Сквозняк
энтузиаст
 
Сообщения: 1123
Зарегистрирован: 29.06.2006 22:08:32

Re: Кодировка в окне ide

Сообщение kirill » 24.10.2011 10:32:47

Сквозняк писал(а):Может уже и поздно, но не совсем понятно, зачем в винде запускать редактор в фаре и мучаться с двумя восьмибитными кодировками. Из explorer.exe редактор fp.exe, насколько я помню, запускается и одна из восьмибитных кодировок с русскими буквами там работает. Одной вполне достаточно. Если нужно печатать в другой кодировке, то напишите функцию для перекодирования и дело с концом. Я так в линуксе пишу в IBM866 кодировке а в консоль writeln и write выводят utf8.
Если важен текст на всю ширину консоли с кодировкой utf8, а вес бинарника не критичен, то не нужно использовать модуль CRT. Если в консоли 8 битная кодировка, то используйте, никто вам не запрещает - во избежание утечки процессорной мощности обычно нужно использовать delay или sleep а у них ого какие зависимости.

С Линуксом понятно. Там и консоль выполнения написанной программы и сам редактор по-умолчанию работают в utf-8. В windows - зоопарк кодировок: FP работает в кодировке DOS, а написанные в нем приложения (во всяком случае у меня) запускаются в ANSI. Почему?! Не знаю. Это я и хочу узнать.
Почему я из фара запускаю FP - привычка. Так проще создавать pascal файл в нужном каталоге. Создал файл по Shift+F4, и открыл его для редактирования в FP IDE.
kirill
новенький
 
Сообщения: 22
Зарегистрирован: 25.10.2010 19:40:45
Откуда: Kaliningrad, RF

Re: Кодировка в окне ide

Сообщение Vadim » 24.10.2011 11:18:42

kirill писал(а):запускаются в ANSI. Почему?! Не знаю.

Попробуйте CRT из Uses удалить и посмотрите, что будет. :)
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Кодировка в окне ide

Сообщение Сквозняк » 25.10.2011 01:35:19

kirill писал(а):С Линуксом понятно. Там и консоль выполнения написанной программы и сам редактор по-умолчанию работают в utf-8. В windows - зоопарк кодировок: FP работает в кодировке DOS, а написанные в нем приложения (во всяком случае у меня) запускаются в ANSI. Почему?!
Ничего подобного, в линуксе тоже зоопарк кодировок, utf-8, призванная с ним покончить, или работает не везде или не полностью, или в системе нет всех шрифтов, или программа не всеми умеет пользоваться. Редактор работает в консоли в которой может быть utf-8 или другая кодировка, но внутри редактора информация идёт в восьмибитных форматах и его постоянно портят и ломают европейские товарищи. Последняя нормальная версия была в fpc 2.0.2, последующие - в разной степени испорченности. После скачивания релиза паскаля приходится патчить и пересобирать ИДЕ, тогда ей можно нормально пользоваться. Несколько кодировок не мешают писать и выполнять программы. Лучше использовать собственные конвертеры кодировок, системные обычно настроены портить информацию выходящую за диапазон заменяя непонятные символы вопросами.
Сквозняк
энтузиаст
 
Сообщения: 1123
Зарегистрирован: 29.06.2006 22:08:32

Re: Кодировка в окне ide

Сообщение kirill » 25.10.2011 09:27:39

Vadim писал(а):Попробуйте CRT из Uses удалить и посмотрите, что будет.

Большое спасибо. Действительно помогло.
Сквозняк писал(а):Ничего подобного, в линуксе тоже зоопарк кодировок, utf-8, призванная с ним покончить, или работает не везде или не полностью, или в системе нет всех шрифтов, или программа не всеми умеет пользоваться. Редактор работает в консоли в которой может быть utf-8 или другая кодировка, но внутри редактора информация идёт в восьмибитных форматах и его постоянно портят и ломают европейские товарищи. Последняя нормальная версия была в fpc 2.0.2, последующие - в разной степени испорченности. После скачивания релиза паскаля приходится патчить и пересобирать ИДЕ, тогда ей можно нормально пользоваться. Несколько кодировок не мешают писать и выполнять программы. Лучше использовать собственные конвертеры кодировок, системные обычно настроены портить информацию выходящую за диапазон заменяя непонятные символы вопросами.

Спасибо за информацию, не знал, что в linux'е такие же проблемы. А я хотел в классе переделать эти компы на ubuntu.
kirill
новенький
 
Сообщения: 22
Зарегистрирован: 25.10.2010 19:40:45
Откуда: Kaliningrad, RF

Re: Кодировка в окне ide

Сообщение AShen » 25.10.2011 14:00:15

Little_Roo писал(а):Не совсем понятно, какой IDE и, главное, зачем?
Сам в школе работаю, и проблем с Lazarus не было и нет, за исключением периодического обновления оного...
А зоопарк...так это ж не критично - целерон 366, 128 метров мозга :oops: , ХР - и для решения почти всех школьных задач хватает


А что "Школьный линукс" не используете?
Аватара пользователя
AShen
постоялец
 
Сообщения: 155
Зарегистрирован: 26.08.2005 10:22:44
Откуда: Новороссийск

Re: Кодировка в окне ide

Сообщение kirill » 25.10.2011 14:15:42

AShen писал(а):А что "Школьный линукс" не используете?

Честно говоря не знаю. Как стояла винда на компах, когда жена пришла в школу, так и стоит. Мне времени заниматься этим нету, а она не очень в этом разбирается. Что-то видел в новостях, а подробности не знаю.
kirill
новенький
 
Сообщения: 22
Зарегистрирован: 25.10.2010 19:40:45
Откуда: Kaliningrad, RF

Re: Кодировка в окне ide

Сообщение AShen » 25.10.2011 15:14:23

kirill писал(а):
AShen писал(а):А что "Школьный линукс" не используете?

Честно говоря не знаю. Как стояла винда на компах, когда жена пришла в школу, так и стоит. Мне времени заниматься этим нету, а она не очень в этом разбирается. Что-то видел в новостях, а подробности не знаю.


http://freeschool.altlinux.ru/

Школьный линукс:
http://www.altlinux.org/%D0%90%D0%BB%D1 ... 1%8B%D0%B9"
Аватара пользователя
AShen
постоялец
 
Сообщения: 155
Зарегистрирован: 26.08.2005 10:22:44
Откуда: Новороссийск

Пред.След.

Вернуться в Обучение Free Pascal

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

Рейтинг@Mail.ru