Einzelnen Beitrag anzeigen

freimatz

Registriert seit: 20. Mai 2010
1.380 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: CommandLine zur Laufzeit setzen

  Alt 3. Mär 2020, 09:12
Ich habe eine Klasse, die CmdLine auswertet.
Wird wirklich die CmdLine ausgewertet oder doch eher ParamStr() verwendet?

Wie dem auch sei, Du musst das Auslesen der CmdLine von der Auswertung trennen.
a) Du könntest den Code der Auswertung so ändern, dass er nicht direkt ParamStr abfragt sondern z.B. ein Array mit den Params bekommt. Dann kannst du im Tests diese Array abfüllen. Im Produktivcode wird das Array halt mit ParamStr abgefüllt, was Du dann nicht testen kansnt.
b) Du machste eine neue unit die du bei uses aufführst. In diese unit definierst Du ParamStr und ParamCount neu, welche dann jeweils auf die orginalen Param-Methoden zugreifen oder Testdaten liefern.
Ich habe mal

Ich selber habe mal den Parser von http://www.finalbuilder.com benutzt. Der macht intern auch die Trennung.
Leider ist die Methode "function TCommandLineParser.Parse(const values: TStrings): ICommandLineParseResult;" nicht public, liese sich weil Sourcen alle da leicht ändern.
  Mit Zitat antworten Zitat