![]() |
Re: Strings und Case of
Zitat:
Zitat:
|
Re: Strings und Case of
Zitat:
gruß |
Re: Strings und Case of
Zitat:
|
Re: Strings und Case of
Hi Leute!
Bin neu auf dem Board ... naja, ich hol dieses Thema nochmal ans Tageslicht. Die Idee mit Strings in Integer umzuwandeln ist schön und gut, aber genau das will ich umsetzen. Die Sache ist die: ich habe 32 feste Strings die der Bediener eingeben können muss (später vllt noch ein paar mehr), und die will ich ja gerade in Zahlen umwandeln. Aber da hilft mir "case ... of" nicht weiter. Wie würdet ihr so ein Problem lösen? Mit "if ... then ... else" ist es nur noch mehr schreibarbeit als es mit "case ... of" ohnehin schon ist. Ich hoffe ihr habt da noch einen Vorschlag. MfG BigBob PS: ich bin ganz neu in der Materie und versuche mit meinem begrenzten Wissen ein Skat-Computer zu proggen ... das erweist sich aber bisher als heikles unterfangen, dabei bin ich immernoch beim kartengeben und -lesen *grml* |
Re: Strings und Case of
Hallo,
Delphi-Quellcode:
so was?
case StrUtils.AnsiIndexStr(['foo','bar']) of
0:; 1:; end; |
Re: Strings und Case of
Zitat:
Hmmm ... daraus werd ich nicht schlau, da muss ich mir nochmal die Tipps hier Thread angucken. Ursprünglich sah das bei mir so aus:
Delphi-Quellcode:
Aber ich habs jetz umgeändert mit der "if" Anweisung. Ich nehme den Frage-Button wieder raus, aber trotzdem: muss das sein?:
case befehl of 'Karo 7' : gesetzt:=1;
'Karo 8' : gesetzt:=2; 'Karo 9' : gesetzt:=3; 'Karo Bube' : gesetzt:=4; 'Karo Dame' : gesetzt:=5; 'Karo König' : gesetzt:=6; 'Karo 10' : gesetzt:=7; 'Karo Ass' : gesetzt:=8; 'Herz 7' : gesetzt:=9; 'Herz 8' : gesetzt:=10; 'Herz 9' : gesetzt:=11; 'Herz Bube' : gesetzt:=12; 'Herz Dame' : gesetzt:=13; 'Herz König' : gesetzt:=14; 'Herz 10' : gesetzt:=15; 'Herz Ass' : gesetzt:=16; 'Pik 7' : gesetzt:=17; 'Pik 8' : gesetzt:=18; 'Pik 9' : gesetzt:=19; 'Pik Bube' : gesetzt:=20; 'Pik Dame' : gesetzt:=21; 'Pik König' : gesetzt:=22; 'Pik 10' : gesetzt:=23; 'Pik Ass' : gesetzt:=24; 'Kreuz 7' : gesetzt:=25; 'Kreuz 8' : gesetzt:=26; 'Kreuz 9' : gesetzt:=27; 'Kreuz Bube' : gesetzt:=28; 'Kreuz Dame' : gesetzt:=29; 'Kreuz König' : gesetzt:=30; 'Kreuz 10' : gesetzt:=31; 'Kreuz Ass' : gesetzt:=32 ELSE gesetzt:=0 END;
Delphi-Quellcode:
if befehl='Karo 7' then gesetzta:=1 else {Kartenwert nach Kartenname ermitteln}
if befehl='Karo 8' then gesetzta:=2 else if befehl='Karo 9' then gesetzta:=3 else if befehl='Karo Bube' then gesetzta:=4 else if befehl='Karo Dame' then gesetzta:=5 else if befehl='Karo König' then gesetzta:=6 else if befehl='Karo 10' then gesetzta:=7 else if befehl='Karo Ass' then gesetzta:=8 else if befehl='Herz 7' then gesetzta:=9 else if befehl='Herz 8' then gesetzta:=10 else if befehl='Herz 9' then gesetzta:=11 else if befehl='Herz Bube' then gesetzta:=12 else if befehl='Herz Dame' then gesetzta:=13 else if befehl='Herz König' then gesetzta:=14 else if befehl='Herz 10' then gesetzta:=15 else if befehl='Herz Ass' then gesetzta:=16 else if befehl='Pik 7' then gesetzta:=17 else if befehl='Pik 8' then gesetzta:=18 else if befehl='Pik 9' then gesetzta:=19 else if befehl='Pik Bube' then gesetzta:=20 else if befehl='Pik Dame' then gesetzta:=21 else if befehl='Pik König' then gesetzta:=22 else if befehl='Pik 10' then gesetzta:=23 else if befehl='Pik Ass' then gesetzta:=24 else if befehl='Kreuz 7' then gesetzta:=25 else if befehl='Kreuz 8' then gesetzta:=26 else if befehl='Kreuz 9' then gesetzta:=27 else if befehl='Kreuz Bube' then gesetzta:=28 else if befehl='Kreuz Dame' then gesetzta:=29 else if befehl='Kreuz König' then gesetzta:=30 else if befehl='Kreuz 10' then gesetzta:=31 else if befehl='Kreuz Ass' then gesetzta:=32 else gesetzta:=0; Wie unschwer auffällt ist das eine Menge Schreibkram. Naja, wenn jemand ne Idee hat, wie es hätte schneller gehen können, bin ich dafür offen. Ansonsten is meine Frage beantwortet. MfG BigBob |
Re: Strings und Case of
Das is ja bei dir noch viel einfacher...
Delphi-Quellcode:
gesetzt := AnsiIndexStr(['Karo 7'],['Karo 8']{,...})+1;
if gesetzt = -1 then gesetzt := 0; |
Re: Strings und Case of
Nabend ...,
mir fallen spontan 2 mögliche Lösungen ein. Array definieren
Delphi-Quellcode:
und dann die Abfragen
const Karte_Name: Array[1..32] of String = ('Karo 7','Karo 8','Karo 9',
'Karo Bube','Karo Dame','Karo König', 'Karo 10','Karo Ass', 'Herz 7','Herz 8','Herz 9', 'Herz Bube','Herz Dame','Herz König', 'Herz 10','Herz Ass', 'Pik 7','Pik 8','Pik 9', 'Pik Bube','Pik Dame','Pik König', 'Pik 10','Pik Ass', 'Kreuz 7','Kreuz 8','Kreuz 9', 'Kreuz Bube','Kreuz Dame','Kreuz König', 'Kreuz 10','Kreuz Ass');
Delphi-Quellcode:
LG Mario
procedure TForm1.ButtonClick(Sender: TObject);
var i: integer; Karte: String; begin Karte:= 'Karo 10'; for i:= 1 to High(Karte_Name) do if Karte_Name[i] = Karte then showmessage(Karte+ ' mit Wert '+ IntToStr(i)+ ' gesetzt'); end; procedure TForm1.ButtonClick(Sender: TObject); var i: integer; Karte: String; begin Karte:= 'Karo 10'; i:= AnsiIndexStr(Karte, Karte_Name) +1; showmessage(Karte+ ' mit Wert '+ IntToStr(i)+ ' gesetzt); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:39 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz