Difference between revisions of "Executing External Programs/sk"
From Free Pascal wiki
Jump to navigationJump to searchm |
|||
Line 1: | Line 1: | ||
+ | {{Executing External Programs}} | ||
+ | |||
== Úvod == | == Úvod == | ||
Revision as of 20:54, 31 January 2006
│
Deutsch (de) │
English (en) │
español (es) │
français (fr) │
italiano (it) │
日本語 (ja) │
Nederlands (nl) │
polski (pl) │
português (pt) │
русский (ru) │
slovenčina (sk) │
中文(中国大陆) (zh_CN) │
Úvod
Je mnoho spôsobov ako spustiť externé programy. Zameriame sa na jeden z nich.
TProcess
Môžete použiť TProcess na spustenie externých programov. Výhody tohoto spôsobu sú:
- Nezávislý na platforme
- Schopnosť čítať zo stdin a stdout.
Jednoduchý príklad
// Toto je ukážkový program ktorý vám ukáže ako // spustiť externý program. program launchprogram; // Tu si "použijeme" unity ktoré budeme potrebovať uses Classes, SysUtils, Process; // Toto je definícia premennej APRocess // typu "TProcess" var AProcess: TProcess; // Začiatok programu begin // Vytvoríme objekt TProcess // pridelíme ho do premennej AProcess AProcess := TProcess.Create(nil); // Povieme novému procesu aký príkaz má vykonať // Použime FPC prekladač AProcess.CommandLine := 'ppc386 -h'; // Definujeme nastavenie pre spustenie. // Toto nastavenie zaručí že náš program // nebude pokračovať až kým sa proces neskončí AProcess.Options := AProcess.Options + [poWaitOnExit]; // Teraz keď už proces vie čo má robiť // ho môžeme spustiť. AProcess.Execute; // Toto sa dosiahne až po skončení procesu. AProcess.Free; end.
To je všetko! Práve ste sa naučili ako spustit externý program použitím TProcess.
To je všetko pekné, ale ako získam výstup spusteného programu?
Tak sa na to pozrime, trochu rozšírime náš priklad:
Vylepšený príklad
// Toto je ukážkový program ktorý vám ukáže ako // spustiť externý program. program launchprogram; // Tu si "použijeme" unity ktoré budeme potrebovať uses Classes, SysUtils, Process; // Toto je definícia premennej APRocess // typu "TProcess" // Teraz pridáme aj TStringList aby sme // mohli uložiť výstup procesu. var AProcess: TProcess; AStringList: TStringList; // Začiatok programu begin // Vytvoríme objekt TProcess // pridelíme ho do premennej AProcess AProcess := TProcess.Create(nil); // Vytvoríme TStringList a pridelíme ho AStringList := TStringList.Create; // Povieme novému procesu aký príkaz má vykonať // Použime FPC prekladač AProcess.CommandLine := 'ppc386 -h'; // Definujeme nastavenie pre spustenie. // Toto nastavenie zaručí že náš program // nebude pokračovať až kým sa proces neskončí // Zároveň ho nastavíme tak, aby sme mohli // čítať výstup. AProcess.Options := AProcess.Options + [poWaitOnExit, poUsePipes]; // Teraz keď už proces vie čo má robiť // ho môžeme spustiť. AProcess.Execute; // Toto sa dosiahne až po skončení procesu. // Teraz načítame výstup programu // do TStringListu. AStringList.Lines.ReadFromStream(AProcess.Output); // Uložíme výstup do súboru AStringList.Lines.SaveToFile('output.txt'); // Teraz keď je už výstup uložený // môžeme uvolniť objekty. AStringList.Free; AProcess.Free; end.