Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Для упрощенной работы с консолью


Автор: Alex 22.1.2005, 10:58
Многие кто писал консольные приложения наверное сталкивался с такой проблеммой:
В окне консоли используется кодировка OEM, т.е. DOS-кодировка. Поэтому, если в программе написать:
Код

WriteLn('Вася+Маша=Лубов');

то в консольно окне мы увидим "кракозябры" вместо русских букв. Это потому, что в Delphi программе естественно используется кодировка Windows.

Есть еще одна проблема:
Если в консольной программе возникает исключительная ситуация (Exception), то это вызывает малопонятное для клиента окно сообщения о системной ошибке в приложении.

Мне приходилось часто писать консольные приложения. Так вот, что бы не заниматься постоянной перекодировкой и не заботиться об необработанных программой исключениях, я написал свой модулек awConsole.
Просто добавление этого модуля в проект вызывает несколько изменений в поведении программы:
   1. Весь консольный ввод/вывод осуществляется в кодировке OEM;
      Достигается это подменой "драйвера" обслуживания консольных файлов Input, Output, ErrOutput.
   2. Исключения не обработанные программой вызывают окно сообщения вместо системной ошибки.

Ну и есть там еще несколько полезных и не очень полезных функций.

http://forum.vingrad.ru/index.php?act=module&module=vingradfaq&target=download_file&articleid=2240&attachid=1

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)