mögliche Startparameter (string array) ersetzen

  • Themenstarter Themenstarter bfm66
  • Beginndatum Beginndatum
B

bfm66

Guten Tag!

Ich habe ein kleines Problem. Ich möchte mein Programm ebenfalls lauffähig für eine Konsolenanwendung machen. Dazu werte ich die Startparameter aus, die in der Main-Methode übergeben werden als String Array.
Code:
static void Main(string[] args)
        {
         ...
        }
Wenn Startparameter vorhanden sind wird die Konsolenanwendung ausgeführt, wenn nicht wird mein GUI gestartet.
In meiner Methode ApplicationParameter möchte ich meine Startparameter auswerten. Wenn ich ein -s mitgegeben habe soll das geschehen, wenn ein -c dann das usw. (x,y,z sind Checkboxen deshalb Contains(bool))

Code:
 public ApplicationParameter(string[] args)
        {
            z = args.Contains<string>("-s");
            y = args.Contains<string>("-c");
            x = args.Contains<string>("-v");
        }
Das funktioniert auch alles soweit!
Wenn der Nutzer aber /S oder /s oder -S eingibt wird der Parameter logischerweise nicht gelesen.
Ich will nicht für jeden Fall eine eigene Zeile Code verbrauchen sondern will eine einheitliche Form die mit " - " und "kleinbuchstabe".

Dazu muss ich mir in dem string Array den Fall suchen eines " / " und Replace durchführen mit " - ".

So hatte ich mir das vorgestellt, komme aber zu keiner vernünftigen Lösung.

Falls was unklar sein sollte bitte melden!
Danke im Vorraus!
 
Wenn der Nutzer aber /S oder /s oder -S eingibt wird der Parameter logischerweise nicht gelesen.
Ich will nicht für jeden Fall eine eigene Zeile Code verbrauchen sondern will eine einheitliche Form die mit " - " und "kleinbuchstabe".

Dazu muss ich mir in dem string Array den Fall suchen eines " / " und Replace durchführen mit " - ".

Moin,

um eine entsprechende Prüfung oder ein Ersetzen wirst Du aber kaum drum rumkommen!
Oder Du schränkst die Art der Eingabe im Vorfeld ein !

Gruß
Klaus
 
Moin,

um eine entsprechende Prüfung oder ein Ersetzen wirst Du aber kaum drum rumkommen!

Und wie ersetze ich das am besten? Ich will es nicht einschränken da später vllt. noch optional Parameter übergeben werden. Aber vorerst würde es reichen zu ersetzen.
Ich habe es mit dem Stringbuilder versucht, aber komme da zu keine sinnvollen Lösung:

Code:
            StringBuilder sb = new StringBuilder();
            sb.Replace((args.Select<string>("/")), ("-"));
Aber das passt nicht ganz da das 2-Typargument erforderlich ist. Weiß aber keinen anderen Ansatz so richtig =(
 
Moin,

also ich würde 'args' in einzelne strings auslesen und dann mit "replace" arbeiten ...

Code:
string& replace(size_type pos, size_type n, const string& s)
string& replace(size_type pos, size_type n, const char* s)
Alle Zeichen des Strings ab der Stelle pos, aber maximal n Zeichen, werden entfernt. An dieser Stelle werden alle Zeichen des Strings bzw. C-Strings s eingefügt.

Quelle: http://www.oop-mit-cpp.de/stdbib_html/p133.html

Gruß
Klaus
 
Okay Danke für die Antwort ich habe mir jetzt sowas in der Form gebastelt. =)
 
Zurück