Показать сообщение отдельно
  #1  
Старый 05.09.2008, 19:33
Аватар для Genry
Genry Genry вне форума
Начинающий
 
Регистрация: 14.04.2008
Адрес: с. Россия, г. Курган
Сообщения: 160
Версия Delphi: 7
Репутация: 10
Смущение Как запустить консольное приложение и перехватить вывод?

Вот код (взял из dkrb):
Код:
procedure ExecCmdine(const CmdLine: string; CmdResult: TStrings);
var
Output: PIOFile;
Buffer: PChar;
TempString: string;
Line: string;
BytesRead: Integer;
const
BufferSize: Integer = 1000;
begin
Output := popen(PChar(CmdLine), 'D:\Проекты\©Сапунов Василий\Мега Калькулятор 23\Mega Calc v1\Console\Integer\IntegerPlus.exe');
GetMem(Buffer, BufferSize);
if Assigned(Output) then
try
   while feof(Output) = 0 do
   begin
     BytesRead := Libc.fread(Buffer, 1, BufferSize, Output);
     SetLength(TempString, Length(TempString)+BytesRead);
     memcpy(@TempString[length(TempString)-(BytesRead-1)], Buffer, BytesRead);
     while Pos(#10, TempString) > 0 do
     begin
       Line := Copy(TempString, 1, Pos(#10, TempString)-1);
       if CmdResult<>nil then CmdResult.Add(Line);
       TempString := copy(TempString, Pos(#10, TempString)+1, Length(TempString));
     end;
   end;
finally
   Libc.pclose(output);
   wait(nil);
   FreeMem(Buffer,BufferSize);
end;
end;

Но вот тут какие-то ошибки:



Помогите...
__________________
http://forceway.ru/
Ответить с цитированием