[fpc-pascal] Question about tprocess from fpc

n7800 n7800 at inbox.ru
Thu Jan 30 17:28:15 CET 2025


You are reading the output incorrectly, this should be done in a loop:
 
https://wiki.lazarus.freepascal.org/Executing_External_Programs#Reading_large_output
 
To avoid doing this manually, use the "RunCommand":
 
https://wiki.lazarus.freepascal.org/Executing_External_Programs#(Process.)RunCommand
 
In general, study this article. There are a lot of details there, and options that you can choose, depending on what you need.
  
>Пятница, 24 января 2025, 19:18 +05:00 от Terry A. Haimann via fpc-pascal <fpc-pascal at lists.freepascal.org>:
> 
>
>I recently tried to execute a sed command from Lazarus, but didn't receive any output. But when I imbedded the sed command in a script and then executed the script from tprocess, it worked fine. Why is this? I have run across similar issues from other Linux commands when trying to execute them from a Free Pascal program. The work around I have found is to hide them in a script. Not pretty, but it works.
>
>This was run on a i7-8700 and I am running Linux Mint 20.2 and am using Mate 1.24
>
>Source Code
>
>Function CaptureArtWork(b, e: LongInt): TStringList;
>Var
>   ArtProc: TProcess;
>   ArtSL: TStringList;
>   i: LongInt;
>Begin
>     ArtProc := TProcess.Create(nil);
>     ArtSL := TStringList.Create;
>     ArtProc.Executable := 'sed';
>     ArtProc.Parameters.Add('-n');
>     ArtProc.Parameters.Add('"' + IntToStr(b) + ',' + IntToStr(e) + 'p"');
>     ArtProc.Parameters.Add('MyFileName');
>     ArtProc.Options := ArtProc.Options + [poWaitOnExit, poUsePipes];
>     ArtProc.Execute;
>     ArtSL.LoadFromStream(ArtProc.Output);
>     ArtProc.Free;
>     CaptureArtWork := ArtSL;
>End;
>--
>Terry A. Haimann < terry at haimann.us >
>_______________________________________________
>fpc-pascal maillist -  fpc-pascal at lists.freepascal.org
>https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-pascal/attachments/20250130/c3e2dcf5/attachment.htm>


More information about the fpc-pascal mailing list