Warum machst Du es nicht so, wie bei optionalen Parametern zB bei INI-Dateien?
Ich stelle mit eine Klasse vor, die eine Menge von Parametern und deren Werte verknüpfen kann (ähnlich wie
TIniFile), natürlich kannst Du das ganze auch mit einem großen String und div funktionen machen (hier eignen sich
Reguläre Ausdrücke).
Dann könnte die Klasse zB eine Methode zum Ermitteln, ob es einen Schlüssel (Parameternamen) gibt, implementieren
TMyClass.HasKey(const AName: string): Boolean
eine Methode, die tatsächlich den Wert des Schlüssels (Parameter) liest, nur intern verwendet wird und bei nicht-Existenz dieses Schlüssel eine
Exception wirft
TMyClass.DoReadKey(const AName: string): string
Die tatsächliche Lösung für Dein Problem könnte dann so aussehen
Delphi-Quellcode:
TMyClass.ReadStringKey(const AName: string;
const ADafault: string=''): string;
begin
if HasKey(AKey) then
Result:= DoReadKey(AName)
else
Result:= ADefault;
end;
bzw für Zahlenwerte
Delphi-Quellcode:
TMyClass.ReadIntKey(const AName: string;
const ADefault: Integer = 0): Integer;
begin
Result:= StrToInt(ReadStringKey(AKey, IntToStr(ADefault));
end;
und im Programm schreibst Du dann einfach
Delphi-Quellcode:
myUhrzeit:= myParams.ReadHourKey('u', DefaultHour);
myEntryCount:= myParams.ReadIntKey('l', DefaultEntryCount);
Die Beispiele sind nicht getestet!