Ich habe eine Schleife geschrieben, die einen String nach einem bestimmten System (immer abwechselnd 2 und 1 Zeichen) in ein zweidimensionales Array einsortiert. Nach der Ausführung kann ich ab einer bestimmten Länge des Strings mein Programm nicht mehr ohne Fehlermeldung schließen, die mir eine Access Violation angibt. Normalerweise bedeutet das ja eine Speicherüberschreitung z.B. bei einem Array aber in diesem Fall erscheint die Exception ja beim Schließen des Programms, deshalb wiß ich nicht womit es zusammenhängt.
Code:
for k := 1 to length(ams)-1 do
for l := 1 to length(ams[k])-1 do
begin
ams[k,l] := chr(0);
end;
k := 0;
a := 2;
while length(x) > 0 do
begin
k := k+1;
if k > length(y) then
begin
k := 1;
a := a+1;
end;
if (odd(k)) and (length(x) >= 2)then
begin
ams[k,a] := x[1] + x[2];
delete(x,1,2);
end
else
begin
ams[k,a] := x[1];
delete(x,1,1);
end;
end;
x ist der betreffende String, ams das Array (ams : array of array of string[2])
Ich kann mir das beim besten Willen nicht erklären.