Einzelnen Beitrag anzeigen

Chrissi91

Registriert seit: 28. Jul 2005
849 Beiträge
 
#1

Inkompitable Typen im Bezug auf Ord(Str) als Spaltenangabe

  Alt 11. Apr 2008, 15:13
Hi,

ich grübel schon seit gestern Abend und bin immer noch der Meinung, dass alles eigentlich stimmt.

Ich habe 2 Arrays.

Stat: Array[1..26, 1..2] of String; (lokal)
Table: Array[1..1000, 1..20] of String; (global)

Es geht nur um dieses Stückchen Code:

Stat[Ord(Table[J, Col])-64, 2] := ... J ist vom Typ Integer als lokale Variable, die als Zähler der For-Schleife dient und Col ist ein Parameter meiner Funktion, auch Integer.

Wichtig: Im Array "Table" sind nur Großbuchstaben! D.h.beim A will ich eine 1 kriegen (deshalb minus 64), bei Z eine 26.

Kommentar: [Error] Main.pas(134): Incompatible types

Ord() liefert Integer und erwartet einen String. Sollte doch eigentlich alles okay sein.

Wenn ich jetzt mache:

Stat[Ord(StrToInt(Table[J, Col]))-64, 2] Diese Zeile macht keinen Sinn, aber Delphi kompiliert munter, ohne zu meckern. Erst beim Ausführen dieser Zeile sagt er mir, dass 'W' nicht in Integer umgewandelt werden könne. Das ist ja auch logisch. Aber warum will er für Ord() Integer haben? Ord macht doch aus einem Buchstaben den Ascii-Code ...

Jetzt kommt es in meinen Augen noch besser. Ich änder kaum etwas im Code, sondern mach ihn ein bisschen kürzer:

Stat[Ord(Table[1, 1])-64, 2] Selbst Fehler ... Okay ...

Stat[Ord('W')-64, 2] Jetzt sagt er auf einmal alles okay. Dabei ist doch Table vom Typ String ...

Bitte helft mir ...
  Mit Zitat antworten Zitat