![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
русский язык в консольном приложении
resuS © (2006-06-30 21:56:00)Как в консольном приложении выводить русский язык из буфера, а то у меня там
var
vBuf2:Tstrings;
...
begin
...
writeln( vBuf2.Text);
...
end;
а в vBuf2 находится ответ cmd на команду help . получается строки:
ASSOC эяюяюяююэъяю0Ётщхяях
...
что-то типа этого
Что делать?
resuS (2006-07-01 15:27:00) [1]все заработало с использованием тупого chartoOem :)
Desdechado (2006-07-01 13:30:00) [2]Я долго бился над этой проблемой, но вразумительного решения (кроме тупого CharToOEM) не нашел.
Хотя винда предоставляет функции для переключения консольного вывода, но они работают не так как заявлено.
Кроме того, полноэкранный и оконный режим себя по-разному ведут с этими функциями.
Gero (2006-07-01 04:55:00) [3]
function ConOutFunc(var Text: TTextRec): Integer;
var
Dummy: Cardinal;
SavePos: Integer;
begin
SavePos := Text.BufPos;
if SavePos > 0 then
begin
Text.BufPos := 0;
CharToOemBuff(Text.BufPtr, Text.BufPtr, SavePos);
if WriteFile(Text.Handle, Text.BufPtr^, SavePos, Dummy, nil) then
Result := 0
else
Result := GetLastError;
end { if}
else
Result := 0;
end;
initialization
TTextRec(Output).InOutFunc := @ConOutFunc;
TTextRec(Output).FlushFunc := @ConOutFunc;
Джо (2006-06-30 22:08:00) [4]CharToOem