Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

В консоли кириллица выводится криво, как это лечить? [D7, WinXP]


crazycrazymax ©   (2005-11-25 19:25:00) 

Вобщем пользуюсь стандартными write и writeln, а кириллица неправильно печатается, ну в редакторе-то я ввожу в виндовой кодировке, а в консоли используется Досовская, как я понял. Как это обойти?


Eksell   (2005-11-25 21:44:00) [1]

Просто в DOSе другая кодировка! (DOS - ASCII, Windows - ANSI)
Нужно просто перекодировать вот так:

function WINToDOS(RText: string): string;
var
i: integer;
ChCode: Byte;
begin
result := '';
for i := 1 to length(RText) do
begin
ChCode := byte(RText[i]);
case RText[i] of
'А'..'п' : RText[i] := chr(ChCode-64);
'р'..'я' : RText[i] := chr(ChCode-16);
end; {case}
result := RText;
end;
А теперь:
......
WriteLn(WINToDOS('Хелоу');
......


Zeqfreed   (2005-11-25 19:27:00) [2]

crazycrazymax   (25.11.05 19:25)

> Как это обойти?

Перекодировать строки, которые выводишь. См. CharToOEM


Наверх

Титульная страница Поиск, карта сайта Написать письмо