Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#14

AW: Mehrdimensionales dynamisches Array, Element löschen

  Alt 17. Feb 2011, 11:01
Delphi-Quellcode:
type
  TIntArray = array of Integer;
  PIntArr = ^TIntArray;
  TIntArrayArray = array of PIntArr;
  
  procedure DeleteArrayElement(var AArray: TIntArrayArray; const AIndex: Integer);
  begin
    Dispose(AArray[AIndex]);
    Move(AArray[AIndex + 1], AArray[AIndex], SizeOf(AArray[0]) * (Length(AArray) - AIndex - 1));
    FillChar(AArray[High(AArray)], SizeOf(AArray[0]), 0);
    SetLength(AArray, Length(AArray) - 1);
  end;
FillChar/ZeroMemory nicht vergessen, da sonst das letzte Feld doppelt vorkommt, dann von SetLength freigegeben würde und somit das vorletzte (nun letzte) Feld auf nicht mehr existierende Daten zeigen könnte.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat