Autor Beitrag
Phantom1
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 390



BeitragVerfasst: So 11.05.03 11:57 
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:

ausblenden 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:
ausblenden 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 user profile iconjasocul: Beitragsformatierung überarbeitet und Erläuterungstext erstellt
Moderiert von user profile iconjasocul: Beitrag geprüft am 08.06.2006