Delphi Как вывести русский текст из консольного приложения

Консольные приложения сей час не сильно популяры. Поскольку, мало куму нужны программа без графического интерфейса, а для выполнения фоновых процедур синхронизации чего – либо лучше написать службу, которая хотя и сложнее в отладке, однако имеет свои преимущества перед консольными приложениями, которые запускаются системным планировщиком задач. Однако, для написания собственных утилит, которые должны работать в фоновом режиме консольные приложения очень полезны и выводить промежуточный результат работы очень полезно. Для вывода русского текста в консоль придётся не много поработать с перекодированием поскольку консоль, не может отображать русский текст в стандартной кодировки Windows win1251, ее надо конвертировать в формат OEM. Приведенная ниже процедура выполняет такое преобразование и выводит в консоль передаваемый в качестве параметра текст. Обязательно что бы в раздел Uses  были добавлены юниты System, Windows.

Uses System, Windows;

Procedure WriteToConsole(ALevel:TLogLevel; AText: string  ; AisWriteToConsole: Boolean = False);

var

lStrWin1251, lStrOem : PAnsiChar;

begin

lStrWin1251:= PChar(AText);

GetMem(lStrOem, Length(lStrWin1251) + 1);

try

AnsiToOem(lStrWin1251,lStrOem);

WriteLn(Output, lStrOem);

Finally

FreeMem(lStrOem, Length(lStrWin1251) + 1);

end;

end;

 

if Assigned(tLogFile) then

tLogFile.Add(ALevel, AText);

end;

Еще интересные записи по данной теме

Share

Tags:

Leave a Reply