[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