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);
|
procedure processOutputToStrings(aProcess: TProcess; var aList: TStringList);
|
||||||
|
|
||||||
|
(**
|
||||||
|
* Copy available process output to a stream.
|
||||||
|
*)
|
||||||
|
procedure processOutputToStream(aProcess: TProcess; output: TMemoryStream);
|
||||||
|
|
||||||
(**
|
(**
|
||||||
* Terminates and frees aProcess;
|
* Terminates and frees aProcess;
|
||||||
*)
|
*)
|
||||||
|
@ -810,6 +815,25 @@ begin
|
||||||
end;
|
end;
|
||||||
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);
|
procedure killProcess(var aProcess: TAsyncProcess);
|
||||||
begin
|
begin
|
||||||
if aProcess = nil then
|
if aProcess = nil then
|
||||||
|
|
Loading…
Reference in New Issue