Hallo Leute,
ich bin neu hier, hab mich grad angemeldet, weil ich echt nimmer weiter weiss mit meinem Programm! Ich hab schon mehrere Stunden gegoogelt und finde einfach nix. So, genug geweint hier das Problem :
Die folgende Prozedur spuckt "Invalid Pointer Operation" wenn das readln() gleich vor dem letzten end; aufgerufen wird.
Delphi-Quellcode:
procedure tdxffile.parsetext;
var s :
String; i : integer;
begin
i := length(texts);
inc(i);
setlength(texts, i);
readln(datei, s);
while(s) <> '
0'
do
begin
if strtoint(s) = 1
then
begin
readln(datei, s);
texts[i].text := s;
end
else if strtoint(s) = 10
then
begin
readln(datei, s);
texts[i].x1 := strtofloat(s);
end
else if strtoint(s) = 20
then
begin
readln(datei, s);
texts[i].y1 := strtofloat(s);
end
else if strtoint(s) = 30
then begin
readln(datei, s);
texts[i].z1 := strtofloat(s);
end
else readln(datei, s);
// s := '';
readln(datei, s);
end;
readln(datei, s);
//hier wird die Exception geworfen
if s = '
LINE'
then parseline
else if s = '
TEXT'
then parsetext
else fakeparseentity;
end;
Aber seltsamerweise erst wenn s einmal 10 war...das heisst, die schleife läuft einmal mit s=7 und einmal mit s=8 durch ohne was zu tun, dann kommt s=10, der wert wird in mein array gespeichert und beim nächsten readln kackt er mir ab!