lazarus

Sekcia: Programovanie 04.07.2007 | 21:50
Avatar Peter Drábik Manjaro  Používateľ
zdravim, prosim vas poradte mi, aky prikaz mam pouzit v lazaruse (fpc) na to, aby som spustil nejaky prikaz ako z konzoly, a jeho vystup ulozil do nejakej premennej. dakujem
    • Re: lazarus 04.07.2007 | 21:56
      Avatar borg Fedora  Administrátor
      myslis nacitat premennu z prikazoveho riadku? neni nahodou v pascale na to procedura ReadLine() (alebo tak nejak)
    • Re: lazarus 04.07.2007 | 22:03
      Avatar Frantisek Klabzuba Debian  Používateľ
      procedure ExecuteApp(CmdLine: string);
      var
       AProcess: TProcess;
       AStringList: TStringList;
      begin
       AProcess := TProcess.Create(nil);
       AStringList := TStringList.Create;
       AProcess.CommandLine := CmdLine;
       AProcess.Options := AProcess.Options + [poWaitOnExit, poUsePipes];
       AProcess.Execute;
       AStringList.LoadFromStream(AProcess.Output);
       AStringList.SaveToFile('output.txt');
       AStringList.Free;
       AProcess.Free;
      end;
      
      begin
       ExecuteApp('make');
      end.
      • Re: lazarus 04.07.2007 | 22:06
        Avatar Frantisek Klabzuba Debian  Používateľ
        sory, malo to byt takto:
        {$mode objfpc}
        
        program pokus;
        
        uses Process, Classes;
        
        procedure ExecuteApp(CmdLine: string);
        var
          AProcess: TProcess;
          AStringList: TStringList;
        begin
          AProcess := TProcess.Create(nil);
          AStringList := TStringList.Create;
          AProcess.CommandLine := CmdLine;
          AProcess.Options := AProcess.Options + [poWaitOnExit, poUsePipes];
          AProcess.Execute;
          AStringList.LoadFromStream(AProcess.Output);
          AStringList.SaveToFile('output.txt');
          AStringList.Free;
          AProcess.Free;
        end;
                                                 
        begin
          ExecuteApp('uname -a');
        end.