Hallo,
ich habe mal wieder einen interessanten Fehler, bei dem ich mir eure Hilfe erhoffe.
Beschreibung:
In einem Programm werden Daten aus einem vorher erstellen dyn. Array ausgelesen. Ist das Auslesen abgeschlossen soll die entsprechende Zeile im dyn. Array gelöscht und das Array somit um ein Element gekürzt werden. Das klappt auch ganz gut, bis ich zum letzen Element (logischerweise Element 0) komme. Dann erhalte ich eine Zugriffsverletzung mit variablen Adressen.
Das kürzendes Feldes erfolgt in einer Prozedur. Wenn ich die aus meinem Gesamtcode rausnehme läuft alles Problemlos, daher vermute ich den Fehler dort.
Code der Prozedur:
Delphi-Quellcode:
procedure Loesche_Array_Element(const AIndex: Integer);
begin
if Length(Feldplatz) = 1 then
begin
SetLength(Feldplatz, 0); // Länge kürzen
//Feldplatz := nil;
end
else
begin
Move(Feldplatz[AIndex + 1], Feldplatz[AIndex], SizeOf(Feldplatz[0]) * (Length(Feldplatz) - AIndex - 1)); //Dahinterliegende Daten aufrücken
SetLength(Feldplatz, Length(Feldplatz) - 1); // Länge kürzen
end;
end;
Ich hoffe es hat jemand eine Idee, wie ich das Problem lösen kann. Danke schonmal!!!