Phantom1 - So 11.05.03 11:57
Titel: ...Strings in einer Case-Anweisung benutzen?
Strings in einer Case-Anweisung benutzen?
Da String kein ordinaler (aufzählbarer) Typ ist, funktioniert das Standard "Case" damit nicht. Um Strings trotzdem in einer Case-Struktur verwenden zu können, wurde dieses Funktion erstellt:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| Function CaseStr(Value: String; Args: Array of String; Sensitive: Boolean): Integer; Begin If Sensitive Then Begin For Result:=High(Args) DownTo 0 Do If Value=Args[Result] Then Break; End Else Begin For Result:=High(Args) DownTo 0 Do If CompareText(Value, Args[Result])=0 Then Break; End; End; |
Der Parameter Sensitive gibt an ob auf Groß-/Kleinschreibung geachtet werden soll.
Hier ein Beispiel zur Anwendung:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| procedure TForm1.FormCreate(Sender: TObject); Var S: String; Begin S:='Str2'; Case CaseStr(S, ['Str1', 'Str2', 'Str3'], True) of 0: ShowMessage('Str1'); 1: ShowMessage('Str2'); 2: ShowMessage('Str3'); Else ShowMessage('Keine übereinstimmung gefunden!'); End; End; |
Moderiert von jasocul: Beitragsformatierung überarbeitet und Erläuterungstext erstellt
Moderiert von jasocul: Beitrag geprüft am 08.06.2006