Autor Beitrag
matze
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 4613
Erhaltene Danke: 24

XP home, prof
Delphi 2009 Prof,
BeitragVerfasst: Fr 20.09.02 16:33 
Hallo !!!

Wie kann ich in einer Case schleife einen String auswerten lassen ??
Ich hab erst gedacht so:
ausblenden 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 ??

_________________
In the beginning was the word.
And the word was content-type: text/plain.
Popov
Gast
Erhaltene Danke: 1



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 4613
Erhaltene Danke: 24

XP home, prof
Delphi 2009 Prof,
BeitragVerfasst: 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

_________________
In the beginning was the word.
And the word was content-type: text/plain.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 20.09.02 19:43 
Zitat:

Dieser Tipp stammt von 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:
ausblenden 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:
ausblenden 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
ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 4613
Erhaltene Danke: 24

XP home, prof
Delphi 2009 Prof,
BeitragVerfasst: Fr 20.09.02 22:03 
danke ! werds mal testen !

_________________
In the beginning was the word.
And the word was content-type: text/plain.