Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Case of für Strings
*Eldorado - So 03.10.10 12:02
Titel: Case of für Strings
Hi,
Ich habe ein kleines Problem.
Ich habe diese Sauce:
runner und NHash sind Integer und X ist ein String
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. - 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:
Auf Grund der For-Schleife tippe ich darauf, dass Du sowas suchst: ;)
Delphi-Quelltext
1: 2:
| case X[runner] of 'ü': X[runner] := 'Q'; |
*Eldorado hat folgendes geschrieben : |
Ich habe diese Sauce: |
Da haben Dir wohl die Strings die Sauce gut versalzen. :mrgreen:
*Eldorado - 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 - 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.
Delete - So 03.10.10 13:30
Es gibt aber eine nachträgliche Implementierung. Einfach mal im Forum suchen.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!