Autor Beitrag
*Eldorado
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28

win7, 64 Bit;

BeitragVerfasst: So 03.10.10 12:02 
Hi,
Ich habe ein kleines Problem.
Ich habe diese Sauce:
runner und NHash sind Integer und X ist ein String
ausblenden Quelltext
1:
2:
3:
4:
5:
for runner:=1 to NHash do begin
case X of
'ü': X:='Q';
'p': X:='A';
....

Und den Fehler:
[Fehler] uHaupt.pas(36): Ordinaltyp erforderlich

Heißt das das ich Case nicht für Strings benutzen kann?

M.f.G.
Eldorado
Marc.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1876
Erhaltene Danke: 129

Win 8.1, Xubuntu 15.10

BeitragVerfasst: So 03.10.10 12:12 
Ein Ordinaltyp ist einaufzählbarer Wert, wie beispielsweise Integer (1,2,3,4,5..) oder Chars (a,b,c,d,e...).
Insofern kannst Du in diesem Fall nur ein einzelnes Element vom String, sprich ein Char, vergleichen:
ausblenden Delphi-Quelltext
1:
Case myString[1of					

Auf Grund der For-Schleife tippe ich darauf, dass Du sowas suchst: ;)
ausblenden Delphi-Quelltext
1:
2:
case X[runner] of
  'ü': X[runner] := 'Q';



user profile icon*Eldorado hat folgendes geschrieben Zum zitierten Posting springen:
Ich habe diese Sauce:

Da haben Dir wohl die Strings die Sauce gut versalzen. :mrgreen:
*Eldorado Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28

win7, 64 Bit;

BeitragVerfasst: So 03.10.10 12:33 
Nein die For schleife Definiert nur den Grad der gewünschten Verschiebung.
Kann ich das net iwie umgehn? oder muss ich jetzt wirklich alles mit if schreiben? o.O

So hat sich erledigt..ich hab schnell alles mit dem NotePad zu If´s gemacht
Tranx
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 648
Erhaltene Danke: 85

WIN 2000, WIN XP
D5 Prof
BeitragVerfasst: So 03.10.10 13:19 
Das ist leider in Delphi prinzipiell nicht möglich, in der Case-Abfrage nicht Ordinaltypen (s. o.) zu verwenden. Daher bist Du leider gezwungen, so vorzugehen, wie Du es dann gemacht hast, mit IF-Abfragen z.B.


Zuletzt bearbeitet von Tranx am So 03.10.10 13:45, insgesamt 1-mal bearbeitet
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 03.10.10 13:30 
Es gibt aber eine nachträgliche Implementierung. Einfach mal im Forum suchen.