| Autor | Beitrag | 
| Metrik 
          Beiträge: 80
 
 Win XP, Win Vista
 C# (VS 2003, #Develop)
 
 | 
Verfasst: So 05.11.06 13:08 
 
Hallo
 Ich will eine kleine Console schreiben, damit die mir arbeite abnehmen kann.
 Das Programm sollte einige verschiedene Funktionen haben, die sich über Parameter einstellen lassen.
 Beispiel:
 Test.exe /r blabla /d bla /l huhu
 die reihenfolge der Parameter muss egal sein, es darf keiner 2 mal vorkommen und es müssen nicht alle angegeben werden.
 Wie kann ich das sinnvoll lösen, ohne 1000 mal abfragen zu müssen?
 Codebeispiele willkommen    MetrikModeriert von  Christian S.: Topic aus C# - Die Sprache verschoben am So 05.11.2006 um 13:09 | 
|  | 
| Metrik  
          Beiträge: 80
 
 Win XP, Win Vista
 C# (VS 2003, #Develop)
 
 | 
Verfasst: Mo 06.11.06 15:20 
 
Das muss doch einer wissen oder?
Oder zumindest eine Idee haben, wie man das lösen könnte?
 
 Metrik
 | 
|  | 
| Christian S. 
          Beiträge: 20451
 Erhaltene Danke: 2264
 
 Win 10
 C# (VS 2019)
 
 | 
Verfasst: Mo 06.11.06 15:52 
 
Vielleicht solltest Du einfach mal sagen, wie Dein bisheriger Ansatz aussieht und wo Du nicht weiter kommst. _________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
 | 
|  | 
| Metrik  
          Beiträge: 80
 
 Win XP, Win Vista
 C# (VS 2003, #Develop)
 
 | 
Verfasst: Mo 06.11.06 17:34 
 
Okay
 Ich würde das vom Prinzip her etwa so machen:
 												| 1:2:
 3:
 4:
 5:
 6:
 7:
 8:
 9:
 10:
 11:
 12:
 13:
 14:
 15:
 16:
 17:
 18:
 19:
 20:
 21:
 22:
 23:
 24:
 25:
 26:
 27:
 28:
 29:
 30:
 31:
 32:
 33:
 34:
 35:
 36:
 37:
 38:
 39:
 40:
 41:
 42:
 43:
 44:
 45:
 46:
 47:
 48:
 49:
 
 | static void Main(string[] args){
 switch (args[0].ToLower())
 {
 case "/d":
 Console.WriteLine("das ist ein test mit /d");
 break;
 case "/p":
 Console.WriteLine("das ist ein test mit /p");
 break;
 case "/l":
 Console.WriteLine("das ist ein test mit /l");
 break;
 default:
 Console.WriteLine("Error: Parameter ungültig");
 break;
 }
 
 switch (args[2].ToLower())
 {
 case "/d":
 Console.WriteLine("das ist ein test mit /d");
 break;
 case "/p":
 Console.WriteLine("das ist ein test mit /p");
 break;
 case "/l":
 Console.WriteLine("das ist ein test mit /l");
 break;
 default:
 Console.WriteLine("Error: Parameter ungültig");
 break;
 }
 switch (args[4].ToLower())
 {
 case "/d":
 Console.WriteLine("das ist ein test mit /d");
 break;
 case "/p":
 Console.WriteLine("das ist ein test mit /p");
 break;
 case "/l":
 Console.WriteLine("das ist ein test mit /l");
 break;
 default:
 Console.WriteLine("Error: Parameter ungültig");
 break;
 }
 |  So ist die Reihenfolde mal eagl(noch sehr optimierbar   )
 Falls aber nich alle Parameter gefüllt werden = error
 Wie kann man das abfangen?
 Zusätzlich bruache ich eine Möglichkeit, um herauszufinen, wie viele Paramter definiert wurden. 
 Metrik | 
|  | 
| Christian S. 
          Beiträge: 20451
 Erhaltene Danke: 2264
 
 Win 10
 C# (VS 2019)
 
 | 
Verfasst: Mo 06.11.06 18:12 
 
Hm. Ich würde den "Environment.CommandLine"-String über einen regulären Ausdruck untersuchen. Also alle Strings der Form "(/d|/p|/l)([^ ]+)" (evtl. noch irgendwelche Escapezeichen, bin gerade nicht sicher) finden und dann alle durchgehen. _________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
 | 
|  | 
| Kha 
          Beiträge: 3803
 Erhaltene Danke: 176
 
 Arch Linux
 Python, C, C++ (vim)
 
 | 
Verfasst: Di 07.11.06 17:51 
 
	  |  Metrik hat folgendes geschrieben: |  	  | Wie kann man das abfangen? | 
 Du wertest nur so viele Parameter aus, wie auch vorhanden sind?
 	  |  Metrik hat folgendes geschrieben: |  	  | Zusätzlich bruache ich eine Möglichkeit, um herauszufinen, wie viele Paramter definiert wurden. | 
 args.Length    ?
 Wenn du dir ein wenig Arbeit ersparen möchtest, kannst du auch bei The Codeproject nach Command-Line-Parameter-Parsern suchen. | 
|  | 
| Metrik  
          Beiträge: 80
 
 Win XP, Win Vista
 C# (VS 2003, #Develop)
 
 | 
Verfasst: Sa 11.11.06 08:47 
 
Hallo
 Kannst du mir mal konkret sagen wie das gehen soll ?
 	  | Zitat: |  	  | Also alle Strings der Form "(/d|/p|/l)([^ ]+)" (evtl. noch irgendwelche Escapezeichen, bin gerade nicht sicher) finden und dann alle durchgehen.
 | 
 Danke 
 Metrik | 
|  | 
| Christian S. 
          Beiträge: 20451
 Erhaltene Danke: 2264
 
 Win 10
 C# (VS 2019)
 
 | 
Verfasst: Sa 11.11.06 11:39 
 
Hallo!
 Wie hast Du es denn probiert? Was weißt Du über reguläre Ausdrücke?
 
 Grüße
 Christian
 _________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
 | 
|  | 
| Metrik  
          Beiträge: 80
 
 Win XP, Win Vista
 C# (VS 2003, #Develop)
 
 | 
Verfasst: Sa 11.11.06 13:44 
 
Hallo
 Nichts    Da ich erst beginne diese Sprache zu lernen und noch nicht so weit bei. 
 Also ich müsste ihrgend ne quelle oder stichwort nach dem ich suchen kann, um infos darüber zu bekommen.
 Metrik | 
|  | 
| Christian S. 
          Beiträge: 20451
 Erhaltene Danke: 2264
 
 Win 10
 C# (VS 2019)
 
 | 
Verfasst: Sa 11.11.06 14:47 
 
Hallo!
 Schau Dir mal die Doku zur RegEx-Klasse an. Wenn man sich da ein wenig durchklickt, bekommt man auch Beispiele zu regulären Ausdrücken. Sehr gut, um was über reg. A. zu lernen, finde ich auch diese Seite: tut.php-q.net/regex.html Grüße
 Christian_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
 | 
|  |