Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - case schleife mit strings ??
matze - Fr 20.09.02 16:33
Titel: case schleife mit strings ??
Hallo !!!
Wie kann ich in einer Case schleife einen String auswerten lassen ??
Ich hab erst gedacht so:
Quelltext
1: 2: 3: 4:
| case mystring of 'bla': tuewas; 'blabla': tuenaochwas; end; |
Allerdings sagt mir Delph das die Variable vom Typ Ordinal sein muss. Srich: Aufzählbar. Wie kann ich eine Case anweisung so verwenden wie ich das oben wollte ??
Anonymous - Fr 20.09.02 17:23
Soweit ich es weiß geht es nicht anders. Tipp: versuch es mal mit IF THEN. Soll auch gut sein :D .
matze - Fr 20.09.02 19:08
nein, weil ich will folgenes machen: eninen kleine kommandozeilen interpreter, der auf bestimmte befehle reagiert. Und das wäre mit case echt komfortabler
Delete - Fr 20.09.02 19:43
Zitat: |
Dieser Tipp stammt von http://www.eggcentric.com/Fn_StringIndex.htm
Case-Anweisungen unterstützen leider keine Strings. Mit der Function StringIndex
gibt es eine elegante Möglichkeit dies zu ändern.
Beispiel bisher:
Quelltext 1: 2: 3:
| if Name = 'Hugo' then mach_was_mit_Hugo else if Name = 'Gabi' then mach_was_mit_Gabi else Hinweis_auf_unbekannten_Namen; |
Beispiel neu:
Quelltext 1: 2: 3: 4: 5:
| case StringIndex(Name, ['Hugo', 'Gabi']) of 0: mach_was_mit_Hugo; 1: mach_was_mit_Gabi; else Hinweis_auf_unbekannten_Namen; end; |
Hier ist die Function StringIndex
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| //------------------------------------------------------------------------- // Mit der Funktion StringIndex läßt sich die Position eines bestimmten // Strings in einem Array ermitteln. // // Parameter: such = Der String, nach dem das Array durchsucht wird // aos = String-Array das durchsucht werden soll // Ergebnis: Die Position wo der String gefunden wurde. // Wurde der String nicht gefunden, so ist das Ergebnis -1 // // Der String-Vergleich unterscheidet nicht zwischen Groß/Kleinschreibung //------------------------------------------------------------------------- function StringIndex(such: string; aos: array of string): integer; begin for Result := high(aos) downto 0 do if AnsiSameText(such, aos[Result]) then break; end; |
|
matze - Fr 20.09.02 22:03
danke ! werds mal testen !
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!