![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
вывод на консоль (абракадабра) [D6]
mila © (2002-12-06 17:13:00)program time;
uses sysutils;
begin
writeln(formatdatetime("dddd dd mmmm (dd.mm.yyyy) hh:nn:ss",now));
end.
вот такая программка, она просто выводит на консоль тек. дату и время, но(!) когда выводится длинное название месяца (дня недели), то вместо читаемого текста какая абракадабра. Я понимаю, что это связано с кодировками, но вот как сделать нормальный (читаемый) вывод сообщений никак не соображу.
Помогите, пожалуйста.
DarkGreen (2002-12-09 13:47:00) [1]В NT, 2000, XP можно использовать
BOOL SetConsoleCP(
UINT wCodePageID // code page to set
);
тогда не понадобится CharToOEM
Romkin (2002-12-09 13:21:00) [2]Ага, точно, я просто вывожу так только константы, вроде
writeln(ToOEMString("Привет")); ^-))
oomneeq (2002-12-09 13:14:00) [3]уточним-с...
Romkin © (06.12.02 17:19)
function ToOEMString(const S: ansistring): ansistring;
begin
Result := S;
if S<>"" then//<-- а то может получится AV в user32.dll
CharToOEM(PChar(Result), PChar(Result));
end;
mila (2002-12-06 17:30:00) [4]УРА ! :) Заработало, всем БОЛЬШОЕ спасибо :))))))))
MBo (2002-12-06 17:28:00) [5]uses windows
mila (2002-12-06 17:26:00) [6]2Romkin:
компилятор D6 ругается на CharToOEM :(
Romkin (2002-12-06 17:19:00) [7]
function ToOEMString(const S: ansistring): ansistring;
begin
Result := S;
CharToOEM(PChar(Result), PChar(Result));
end;
Write(ToOEMString("Нажми Enter"));
readln;
Обратная функция, ессно, OEMToChar
han_malign (2002-12-06 17:19:00) [8]Config.Sys(.NT)
Country=007,866,C:\WINDOWS\COMMAND\country.sys
- может поможет.
З.Ы. У меня в 2000-ых вообще ни в Delphi, ни в консоли кириллица не рисуется, хотя в мелко-мягких приложениях все нормально.