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 ...