Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

Re: Wieviele Daten passen in ein dynamisches Array?

  Alt 12. Sep 2006, 15:42
Ich würde dir bei vielen Größenänderungen eine Schrittweise änderung ämpfehel und die Tatsächliche Größe extra speichern.
Unter Umständen kann man sons nette Fragmentierungsprobleme bekommen, vorallem bei DelphiMM.

Delphi-Quellcode:
Type TArray = Record
    Size: Integer;
    Data: Array of Byte;
  End;

Var MyArray: TArray;


//Und dann eventuell ein eigenes SetLength (hier wird z.B. auf 64 KB aufgerundet)
Procedure MySetLength(Var A: TMyArray; NewSize: Integer);
  Begin
    A.Size := NewSize;
    SetLength(A.Data, (NewSize + $FFFF) and $00010000);
  End;
Length(EinArray) wird dann durch MyArray.Size
und EinArray[123] durch MyArray.Data[123] ersetzt.

Man kann die Variablen zwar auch einzeln Verwalten, aber zusammen ist es wohl schöner ^^
Obwohl man so nur die SetLength und Length umbauen müßte. (am Array selber ändert sich da ja nichts)
Delphi-Quellcode:
Var ASize: Integer;
  AData: Array of Byte;
$2B or not $2B
  Mit Zitat antworten Zitat