![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
русский язык в консольном приложении [D7, WinXP]
Aleksandrrr © (2005-08-14 16:37:00)Подскажите, как сделать,
чтобы в консольном приложении при
исполнении русские буквы отображались как
надо? А то выходит какая-то абра - кадабра.
Alexander Panov (2005-08-14 16:54:00) [1]tesseract © (14.08.05 16:48) [2]
там используется CP866(DOS)
Немного неверно.
Используется OEM-кодировка по умолчанию, для перевода в нужную кодировку(в OEM) см. [1].
см. также SetConsoleOutputCP и SetConsoleCP
tesseract (2005-08-14 16:48:00) [2]немного поподробнее - там используется CP866(DOS) и соотвественна нужна конвертация. Или как у TUSER либо вто такая
// Конвертируем в ASCII
function DosConvert(Conv:string):string;
var
Temp:String;i,t:cardinal;
begin
Temp:=Conv;
for i:=1 to length(Conv) do
begin
t:=Ord(Conv[i]);
if (t>$bf) then
if (t<$f0) then t:=t-$40;
if (t>$ef) then t:=t-$10;
Temp[i]:=chr(t);
end;
Result:=temp;
end;
// Конвертируем в ANSI
function WinConvert(Conv:string):string;
var
Temp:String;i,t:cardinal;
begin
Temp:=Conv;
for i:=1 to length(Conv) do
begin
t:=Ord(Conv[i]);
if (t>223) then t:=t+$10;
if (t>127) then
if (t<176) then t:=t+$40;
Temp[i]:=chr(t);
end;
Result:=temp;
end;
TUser (2005-08-14 16:41:00) [3]CharToOEM()