Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Algorithmus zum ermitteln von Parametern (https://www.delphipraxis.net/71689-algorithmus-zum-ermitteln-von-parametern.html)

Zacherl 19. Jun 2006 17:01


Algorithmus zum ermitteln von Parametern
 
Hi,
kennt jemand einen Algorithmus, mitdem man z.B. diesem String in seine Parameter und den eigentlichen Befehl aufsplitten kann:
Zitat:

dosomething -a -123 -"C:\Dokumente und Einstellungen\Test"
in folgende Teile:
Delphi-Quellcode:
//Command
dosomething

//Param1
a
//Param2
123
//Param3
C:\Dokumente und Einstellungen\Test
Danke für jede Hilfe :thumb:

Florian

mkinzler 19. Jun 2006 17:06

Re: Algorithmus zum ermitteln von Parametern
 
Mit Hilfe der trennzeichen '-' müßtest du den string doch zerlegen können.

EDatabaseError 19. Jun 2006 17:10

Re: Algorithmus zum ermitteln von Parametern
 
explodeexplode

oder

Wenn du mit diesem Parameter dein Prog aufruft schaumal mit ParamStr und ParamCount.

Mfg
tobi

Zacherl 19. Jun 2006 17:15

Re: Algorithmus zum ermitteln von Parametern
 
Explode ist schonmal gut. Im Zusammenhang mit den "-" Zeichen.
Was aber, wenn ein "-" im Parameter selbst auftaucht? Normalerweise sind dafür ja dann die " zuständig, in die man den Parameter einbetten muss.

Ich rufe den Parameter nicht über das Programm auf, sondern programmiere eine Art eigene Konsole.

Florian

EDatabaseError 19. Jun 2006 17:18

Re: Algorithmus zum ermitteln von Parametern
 
achso.

dann würd ich empfehlen das - durch ein exotisches zeichen wie ein § ersetzen und dann explode drüberlaufen lassen und das - zwischen den " ignorieren.

Zacherl 19. Jun 2006 17:38

Re: Algorithmus zum ermitteln von Parametern
 
So, hab jetzt noch was gefunden. Und zwar die Hier im Forum suchenDivStrList.
Klapp soweit wunderbar.

Florian

omata 19. Jun 2006 17:40

Re: Algorithmus zum ermitteln von Parametern
 
So, hab mich auch nochmal dran versucht...

Delphi-Quellcode:
procedure ReadParams(Text:string; Params:TStrings);
var p:string;
    i:integer;
    Quot:boolean;
begin
  Quot:=false;
  p:='';
  for i:=1 to length(Text) do begin
    case Text[i] of
      '-','/': if not Quot then begin
                 if trim(p) <> '' then
                   Params.Append(trim(p));
                 p:='';
               end;
      '"':    Quot:=not Quot;
      ' ':    if not Quot then begin
                 if trim(p) <> '' then
                   Params.Append(trim(p));
                 p:='';
               end;
    end;
    p:=p + Text[i];
  end;
  if trim(p) <> '' then
    Params.Append(trim(p));
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:13 Uhr.

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