WriteConsoleOutputCharacter проблема c русским алфавитом

Общие вопросы программирования, алгоритмы и т.п.

Модератор: Модераторы

WriteConsoleOutputCharacter проблема c русским алфавитом

Сообщение fondreykus-1 » 31.08.2010 15:27:36

Здравствуйте. Пользуюсь FreePascal в режиме Delphi compatible
Наткнулся вот на что: WriteConsoleOutputCharacter не хочет правильно отображать русский алфавит. Точнее, если написать следующее:
Код: Выделить всё
var 
  Wr: LongWord;
  P:_COORD;
  Output: Handle;
  Buff: Array[1..80] of Char;
begin
  Output:=GetStdHandle(STD_OUTPUT_HANDLE);
  P.x:=2;
  P.y:=2;
  Buff:='абвгдеёжзийклмнопрстуфхцчшщъыьэюя';
  WriteConsoleOutputCharacter(Output,@Buff,33,P,Wr);
end.

то половина букв будет просто проигнорирована, в строке будут пустые места. Причём с английским алфавитом такого не случается. Можно ли это как-нибудь "вылечить"? Заранее спасибо
fondreykus-1
незнакомец
 
Сообщения: 5
Зарегистрирован: 09.07.2010 14:07:01

Re: WriteConsoleOutputCharacter проблема c русским алфавитом

Сообщение Mr.Smart » 31.08.2010 15:45:59

Я так полагаю, что вы набираете текст программы в среде Lazarus, а как известно (с незапамятных времён) текст программы вводится в кодировке UTF-8. От сюда и грабли...
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: WriteConsoleOutputCharacter проблема c русским алфавитом

Сообщение fondreykus-1 » 31.08.2010 15:58:13

Я набираю текст в OEM редакторе FreePascal. Проблема в том, что WriteLn(Buff[1..33]) работает как надо, а WriteConsoleOutputCharacter выкидывает фокусы.
fondreykus-1
незнакомец
 
Сообщения: 5
Зарегистрирован: 09.07.2010 14:07:01

Re: WriteConsoleOutputCharacter проблема c русским алфавитом

Сообщение z.g » 31.08.2010 16:48:23

это известный баг консоли.
помогает:
1. установка консоли векторного шрифта.
2. использование WriteConsoleOutputCharacterW.
3. использование более других функций консоли для достижения требуемого эффекта.
z.g
новенький
 
Сообщения: 17
Зарегистрирован: 15.02.2010 01:02:45

Re: WriteConsoleOutputCharacter проблема c русским алфавитом

Сообщение fondreykus-1 » 31.08.2010 17:35:32

Спасибо! Очень благодарен!
fondreykus-1
незнакомец
 
Сообщения: 5
Зарегистрирован: 09.07.2010 14:07:01


Вернуться в Общее

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 39

Рейтинг@Mail.ru