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


Автор: DonPager 4.4.2003, 10:18
Вопрос не совсем о программировании, а скорее о самих Delphi.
mad.gif чачтенько приходится писать консольки с привычным Writeln, но тут такая проблема:
не хочет она мне руссими буквми писать и всё тут, как быть ?

Автор: Pakshin A. S. 4.4.2003, 10:34
Может русификатор как-нибудь подключить, как с некоторыми приложениями Dosа в Windowsе.

Автор: DonPager 4.4.2003, 10:42
... вот незнаю незню, я Кейрус smile.gif пробовал не помогает

Автор: serious 4.4.2003, 12:43
Не знаю как насчет заголовка консоли, но вот в ней самой можно использовать русский шрифт. Для этого надо попробовать использовать unicode. Пиши что-то вроде WriteConsoleW, вместо WriteConsole.

PS Жизнь.exe /? - прикольно smile.gif

Автор: DonPager 4.4.2003, 18:33
Пишу
Код

S := 'some shit';
a:= Length(S);
PS:= @S;
WriteConsoleW(GetConsoleCP,PS,a,b,nil)

но ничего не происходит (b так и равно 0)

Автор: DonPager 4.4.2003, 18:35
Пишу
Код

S := 'some shit';
a:= Length(S);
PS:= @S;
WriteConsoleW(GetConsoleCP,PS,a,b,nil)

но ничего не происходит (b так и равно 0)

Автор: Borland_Delphi_6 4.4.2003, 18:40
А вот как я выкручивался: брал Лексикон, запускал, писал в нем текст по-русски, сохранял файл, открывал его блокнотом, копировал содержимое и вставлял в Delphi. Там получалась абракадабра в кодировке DOS, а в консоли все прекрасно писалось smile.gif

Автор: DonPager 4.4.2003, 18:58
smile.gif система понятна, но тогда почему конвертируя текст в DOS в томже Аедтиторе,
результат опять таки Win ?

Автор: Borland_Delphi_6 4.4.2003, 19:29
А фиг его знает. Я даже такой проги не знаю, сейчас у меня XP, под ним Lexicon не работает, но под ME все эта ерунда работала. smile.gif
P.S. Жизнь.exe /? Сommand not found...

Автор: serious 4.4.2003, 19:50
Цитата
А вот как я выкручивался: брал Лексикон, запускал, писал в нем текст по-русски, сохранял файл, открывал его блокнотом, копировал содержимое и вставлял в Delphi. Там получалась абракадабра в кодировке DOS, а в консоли все прекрасно писалось


ИМХО это не выход. Тут надо для консоли назначить подходящую таблицу кодировки и все будет Ok.
Думаю вот так должно прокатить:
Код

var
  OutputStr : PWideChar;
  lpNumberOfCharsWritten : DWORD;
  Coord : TCOORD;

...

Coord.X := 0;
Coord.Y := 1;
SetConsoleCursorPosition (OutputHandle, Coord);  // позиция каретки
OutputHandle := GetStdHandle(STD_OUTPUT_HANDLE); // получаем хэндл стандартного потока вывода
SetConsoleOutputCP (1489); // это кодировка KOI8-r (RFC1489)
OutputStr := 'Привет, чувак!!!!!!!!';
WriteConsoleW (OutputHandle, OutputStr, Length(OutputStr), lpNumberOfCharsWritten, 0);




PS Жизнь.exe /? - прямо философия...

Автор: Borland_Delphi_6 5.4.2003, 18:21
Цитата
ИМХО это не выход.

Я понимаю, что не выход, но если все остальное не работает, или если программа вместо 30кб получается 150... В этих случаях можно еспользовать подобный метод. Но это ИМХО.

Автор: serious 5.4.2003, 19:57
Цитата(Borland_Delphi_6 @ 5.4.2003, 10:21)
Я понимаю, что не выход, но если все остальное не работает, или если программа вместо 30кб получается 150...

А что, разве приведенный код не работает?

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