mirror of https://gitlab.com/basile.b/dexed.git
added procedure to accumulate process output in a stream
This commit is contained in:
parent
c760299533
commit
b23f72deda
|
@ -213,6 +213,11 @@ type
|
|||
*)
|
||||
procedure processOutputToStrings(aProcess: TProcess; var aList: TStringList);
|
||||
|
||||
(**
|
||||
* Copy available process output to a stream.
|
||||
*)
|
||||
procedure processOutputToStream(aProcess: TProcess; output: TMemoryStream);
|
||||
|
||||
(**
|
||||
* Terminates and frees aProcess;
|
||||
*)
|
||||
|
@ -810,6 +815,25 @@ begin
|
|||
end;
|
||||
end;
|
||||
|
||||
procedure processOutputToStream(aProcess: TProcess; output: TMemoryStream);
|
||||
var
|
||||
sum, cnt: Integer;
|
||||
const
|
||||
buffSz = 2048;
|
||||
begin
|
||||
if not (poUsePipes in aProcess.Options) then
|
||||
exit;
|
||||
//
|
||||
sum := output.Size;
|
||||
while aProcess.Output.NumBytesAvailable <> 0 do begin
|
||||
output.SetSize(sum + buffSz);
|
||||
cnt := aProcess.Output.Read((output.Memory + sum)^, buffSz);
|
||||
sum += cnt;
|
||||
end;
|
||||
output.SetSize(sum);
|
||||
output.Position := sum;
|
||||
end;
|
||||
|
||||
procedure killProcess(var aProcess: TAsyncProcess);
|
||||
begin
|
||||
if aProcess = nil then
|
||||
|
|
Loading…
Reference in New Issue