eine Frage im Zusammenhang mit dem Datenhandling von großen ASCII-Dateien: kann man dynamische Arrays verschachteln? Zur Erläuterung folgender Code:
Code: Alles auswählen
{ Element Connectivity }
{ ==================== }
TElementNodeNumbers = integer;
TElemConnectionEntry = Record
ielid : integer; { element number }
ityp : integer; { element type of element }
nnod : integer; { number of nodes for element ijk }
iel : Array of integer; { array node numbers of element } { <---- dynamic array of integer }
End;
TElementConnectivity = Record
numel : integer; { number of elements }
nnodmx : integer; { max. number of nodes per element }
elemconn : Array of TElemConnectionEntry; { array of element connection entries } { <---- dynamic array of TElemConnectionEntry }
End;
{ im Programm dann }
...
SetLength(iel,nnodmx); { max. number of nodes per element }
...
SetLength(elemconn,numel); { max. number of elements }
...
{ Speicher für ElementConnectivity besorgen }
{ numel und nnodmx im record setzen }
for i:=1 to numel do
begin
{ weiteren Speicher-Block ElementConnectionEntry besorgen }
{ ... und mit den Daten für 1 Element füllen: }
{ ielid, ityp, nnod und Array iel füllen }
{ die ganze Strucktur in elemconn[i] }
end;

Ich bin nicht sicher, ob das so überhaupt möglich ist. Und wenn ja, ob es sinnvoll ist. Oder ob man lieber mit TList arbeiten sollte; die Listen kann man ja dynamisch erweitern. Da es sehr viele Einträge sind, ist Geschwindigkeit und Speicherverbrauch auch immer eine Aspekt.
Danke für Euren Input,
Photor