Показать сообщение отдельно
  #6  
Старый 08.10.2014, 15:09
OSIRIS OSIRIS вне форума
Прохожий
 
Регистрация: 04.01.2008
Сообщения: 11
Репутация: 10
По умолчанию

Цитата:
Сообщение от Freeman
Аффтар, ты баран. Пользоваться Юникод-версией Delphi и городить какую-то кривую самопальщину вместо встроенного преобразования кодовых страниц -- надо быть альтернативно одаренным. Неужели нельзя справку почитать? Есть прекрасная функция SetCodePage. Передавай ей GetOEMCP, и будет тебе преобразование из кодовой страницы OEM.

"setcodepage" надо будет запомнить, ранее не натыкался, вопрос же сейчас уже по больше части в другом - почему не идет отправка данных в консольное приложение, или же оно идет но не полностью?

к слову говоря:
Код:
procedure TForm1.btnWriteClick(Sender: TObject);
var s:string;
begin
    if zRedirect<>nil then begin
        s := edInput.Text+#13#10;
        if rgCharset.ItemIndex=1 then
            //CharToOem(@s[1],@s[1]);   //////////
            s:=StrAnsiToOem(s);
        zRedirect.WriteData(s);
        edInput.Text := '';
    end;
end;

procedure TRedirectThread.WriteData(Data: string);
var writen:Cardinal;
begin
    if (hWriteIn<>0) and (Length(Data)>0) then begin
        WriteFile(hWriteIn, Data[1], Length(Data), writen, nil);
    end;
end;
Ответить с цитированием