[fpc-pascal] Question about tprocess from fpc

Terry A. Haimann terry at haimann.us
Fri Jan 24 15:10:50 CET 2025


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>


More information about the fpc-pascal mailing list