Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi cmdline tool (https://www.delphipraxis.net/29121-cmdline-tool.html)

dR4g0N 4. Sep 2004 08:45


cmdline tool
 
morgen erstmal, also ich suche ien paar infos, wie ich ein cmdline tool aufzubauen habe sprich wie ich es hinbekomme das es auf parameter nach dem namen des tools (wie z.b. dir /? - das da die help file angezeigt wird) reagiert und das überhaupt ein cmdline prog ist. vlt soll es wenn ich als parameter -n angebe -> net view ausgeführt werden und bei -i -> ipconfig oder so.

thx schonmal im vorraus.

plumper 4. Sep 2004 08:53

Re: cmdline tool
 
Moin,

hab' mal für Dich gesucht... Ich denke das sollte es sein..
Hier im Forum suchenparameter and Programmstart

dR4g0N 4. Sep 2004 09:51

Re: cmdline tool
 
also thx für deine antwort, ich bin jetzt weitergekommen. funktioniert alles soweit nur ich weiss nicht wie ich es hinbekommen soll, dass er es in der aktuellen dos box ausgibt. also atm gebe ich es noch mit showmessage aus.

mytar 4. Sep 2004 10:07

Re: cmdline tool
 
Mit der Compilerdirektive {$APPTYPE CONSOLE} wird eine Console aufgebaut.

Dann kannst du mit den gängigen IO-Anweisungen hantieren.

dR4g0N 4. Sep 2004 10:22

Re: cmdline tool
 
ahh gut, damit kenn ich mich auch schon ein bisschen aus :) aber was ist IO

mytar 4. Sep 2004 10:55

Re: cmdline tool
 
IO (Input-Output): Eingabe, Ausgabe

Kann man mit Delphi-Referenz durchsuchenWriteln() und Delphi-Referenz durchsuchenReadln()!

dR4g0N 4. Sep 2004 14:11

Re: cmdline tool
 
axo das bedeutet IO ^^, aber writeln und readln kenne ich ja schon.

Habe trotzdem noch ein paar fragen. Ich möchte ja ein Konsolenprogramm mit Parametern machen. Gibt es irgendeine Möglichkeit die Variablen in jeder if Anwendung zu deklarieren. Ich überprüfe den parameter mit

Code:
if Parameter = '-irgendwas' then
begin
CODE
end;
Wenn ich jetzt Variablen benutze deklariere ich sie direkt unter uses, wenn ich das richtig verstanden habe, als globale Variable. Wie es in einer Function oder Procedure geht weiß ich ja, aber wenn ich z.B. 10 verschiedene Parameter habe und jedesmal 3 Variablen benutze ist das nur ein großes WirWarr an globalen Variablen.

mytar 4. Sep 2004 18:52

Re: cmdline tool
 
Schau dir dazu Delphi-Referenz durchsuchenparamstr() in der OH an!

Diese Funktion müsste dir jeden Parameter liefern,
der angegeben wird. Ich glaube der Parameter-Index
muss an die Funktion übergeben werden. Einfach mal nachschauen!

Grüße :-D

dR4g0N 4. Sep 2004 22:25

Re: cmdline tool
 
das habe ich schon verstanden, jedoch habe ich probs mit den variablen der übersicht haltshaber. Ich habe nicht 10 parameter hintereinander sonder 10 einzelne parameter die alle unterschiedlich sind. ich weiß nur nicht wie ich lokale variablen innerhalb dieses if blocks verwenden soll. Achja btw wie kann ich denn auf die Indy HTTP Komponente bei einem Konsolenprogramm zugreifen? Kann die komponente ja nicht auf die Form ziehen.

plumper 4. Sep 2004 22:44

Re: cmdline tool
 
Um ganz ehrlich zu sein, habe ich nicht den Hauch einer Ahnung, was Dein Problem ist...

In der Delphihilfe ist doch ein Beispiel mit einer For Schleife...

Code:
procedure TForm1.FormCreate(Sender: TObject);

var
  i: Integer;
  for i := 1 to ParamCount do
  begin
    if LowerCase(ParamStr(i)) = 'beep' then
      Beep
    else if LowerCase(ParamStr(i)) = 'exit' then
      Application.Terminate;
  end;
end;
ich habe echte Verständnisprobleme...

Und ich glaube, das mit den Indy Komponenten gehört in einen neuen Thread... Wobei ich das glaube ich einfach lösen würde, indem ich das zur Laufzeit erzeuge ?!?

Grüße...

dR4g0N 5. Sep 2004 00:13

Re: cmdline tool
 
Naja sorry wenn ich mich hier falsch ausdrücke aber das liegt dann wohl dadran das ich es nicht besser weiß. Aber ich habe doch gesagt, dass es ein Konsolenprogramm ist und ich denke da gibt es sowas wie
Zitat:

procedure TForm1.FormCreate(Sender: TObject);
nicht. Wie ich variablen in proceduren oder functions einbaue ist mir schon bekannt, aber meine Frage war eben, ob man sie auch innerhalb einer if Schleife, sprich wenn eine function/procedure nicht möglich ist einzubauen. Aber so wie ich das bis jetzt mitbekommen habe, wird es wohl nicht so gehen, wie ich es mir vorgestellt habe.

plumper 5. Sep 2004 10:02

Re: cmdline tool
 
Ah ja, ok...

ich glaube, jetzt habe ich verstanden, was Du möchtest.

Es geht nach meinem Wissen nicht, in jeder If-Abfrage eigene Variablen zu deklarieren. Währe allerdings, wenn es so währe auch ziemlich unsauber..

Vieleicht erstellst Du, wenn Dir das ein zu großes durcheinander wird, eigene Funktionen/ Proceduren? Dann kannst Du auch wieder lokale Variablen erstellen!

Vieleicht so nach der Art:

Delphi-Quellcode:
procedure ForParameter1;
Var lokalVar: String;
Begin
<Jede Menge Coding>
End;

procedure ForParameter2;
Var lokalVar: String;
Begin
<Jede Menge Coding>
End;

procedure ForParameter3;
Var lokalVar: String;
Begin
<Jede Menge Coding>
End;
Und dann im Hauptprogramm:
Delphi-Quellcode:
begin
if paramstr(1) = 'parameter1' then
ForParameter1
else if paramstr(1) = 'parameter2' then
ForParameter2
else ifparamstr(1) = 'parameter3' then
ForParameter3;
end;
Muß man evtl. noch anpassen, wenn Du mit mehreren Parameter arbeites. Aber vieleicht als Anhalt!

Sonnige Grüße.. :dancer:

dR4g0N 5. Sep 2004 11:11

Re: cmdline tool
 
thx, das sieht schonmal gut aus. das mit der indy frage ich mal in einem anderen thread :>

Nicodius 5. Sep 2004 11:35

Re: cmdline tool
 
also....



Datei- Neu- Weitere- Konsolenanwendung


das ist der erste Schritt


dann ist der rest so zu machen wie plumper gesagt hat aber pass auf das du mit Writeln/Readln hantieren musst


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:25 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz