Einzelnen Beitrag anzeigen

Benutzerbild von BeBored
BeBored

Registriert seit: 2. Jun 2004
Ort: Cremlingen
90 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

2GB Ram wegen Dynamischen Array

  Alt 28. Aug 2008, 13:20
Hallo,

ich versuche ja ein Gleisplanprogramm zu schreiben und dazu benutze ich ein Dynamisches Array mit 4 Dimensionen.GleisArray: array of array of array of array of string; Dann lese ich aus der Datenbank die einzelnen Felder von einer SQL Abfrage für ein DrawGrid ein:
Delphi-Quellcode:
SetLength(GleisArray, 0,0,0,0);
Count := queryTexte.RecordCount +1;
SetLength(GleisArray, Count, Count, Count, Count);
Und dann wird es mit den Daten gefüllt:
Delphi-Quellcode:
while not queryTexte.Eof do
  begin
    GleisArray[i, 0, 0, 0] := query.FieldByName('x').AsString;
    GleisArray[0, i, 0, 0] := query.FieldByName('y').AsString;
    GleisArray[0, 0, i, 0] := query.FieldByName('Feldtext').AsString;
    GleisArray[0, 0, 0, i] := query.FieldByName('Art').AsString;
    Inc(i);
    query.Next;
  end;
Aber nun frißt die Anwendung 2GB Speicher und das kann eigentlich nur am Array liegen. Benutze ich SetLength falsch? MadExcept zeigt jedenfalls beim Disassembler das Array mit GetMem, ReallocMem und FinalizeArray an.
Matthias
Wer nichts wagt der nichts verliert.
  Mit Zitat antworten Zitat