Konsolebefehle mit AProcess

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
niederrheiner
Beiträge: 87
Registriert: Sa 19. Jan 2008, 17:21
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Rheinberg

Konsolebefehle mit AProcess

Beitrag von niederrheiner »

Hallo an Alle,
warum wird nach Ausführung der folgenden Codesequenz zwar die Datei erg.xxx im richtigen Verzeichnis angelegt, aber sie hat die Länge 0? Führe ich den betreffenden Konsolbefehl direkt auf der Konsole aus, erhalte ich eine korrekt gefüllte Datei

Code: Alles auswählen

AStringList := TStringlist.Create;
   AProcess := TProcess.Create(nil);
   cLine := 'diff -r 2008/04 work/2008/04';
 
   {vorher in das entsprechende Verzeichnis wechseln}
   chdir('/home/guenter/Garmin');
 
   { garmin_save_runs ausfuehren}
   exec('/usr/bin/sudo', '/usr/local/bin/garmin_save_runs');
 
   {neue Files ermitteln}
   AProcess.CommandLine := 'diff -r /home/guenter/Garmin/2008/04 /home/guenter/Garmin/work/2008/04';
   AProcess.Options := AProcess.Options + [poWaitOnExit, poUsePipes];
   AProcess.Execute;
 
   AStringlist.SaveToFile('/home/guenter/Garmin/erg.xxx');
   AStringList.Free;
   AProcess.Free;


Danke für Eure Hilfe und Tipps.

Bis dann ...
MfG
Günter

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Schau dir doch deinen Code mal an, die AStringlist wird doch nirgends gefüllt ...
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

Schau dir mal hier die Beispiele an:
http://wiki.lazarus.freepascal.org/Exec ... rograms/de" onclick="window.open(this.href);return false;
dann wird dir dein Fehler klar werden.
MFG
Michael Springwald

Antworten