![]() |
Dynamisches Array erzeugen
Hi,
ist es möglich ein Dynamisches Array während der laufzeit zu erzeugen ? z.b. x : array of array of array of array ..... : string |
Hi,
so einfach gehts nicht. Was für ein Typ soll das sein ? Gruß Hansa |
string :)
|
Hi,
als erstes wären Pointer zu benutzen. Dann kannst Du machen, was Du willst. Was Deine Frage aber wahrscheinlich genauer trifft (array of array usw.) :
Code:
Findest Du dazu eine Hilfe in der deutschen Version, so sag mir es bitte, bin nämlich jetzt zu faul, das zu übersetzen.
To declare multidimensional dynamic arrays, use iterated array of ... constructions. For example,
type TMessageGrid = array of array of string; var Msgs: TMessageGrid; declares a two-dimensional array of strings. To instantiate this array, call SetLength with two integer arguments. For example, if I and J are integer-valued variables, SetLength(Msgs,I,J); allocates an I-by-J array, and Msgs[0,0] denotes an element of that array. You can create multidimensional dynamic arrays that are not rectangular. The first step is to call SetLength, passing it parameters for the first n dimensions of the array. For example, var Ints: array of array of Integer; SetLength(Ints,10); allocates ten rows for Ints but no columns. Later, you can allocate the columns one at a time (giving them different lengths); for example SetLength(Ints[2], 5); makes the third column of Ints five integers long. At this point (even if the other columns haven’t been allocated) you can assign values to the third column—for example, Ints[2,4] := 6. The following example uses dynamic arrays (and the IntToStr function declared in the SysUtils unit) to create a triangular matrix of strings. var A : array of array of string; I, J : Integer; begin SetLength(A, 10); for I := Low(A) to High(A) do begin SetLength(A[I], I); for J := Low(A[I]) to High(A[I]) do A[I,J] := IntToStr(I) + ',' + IntToStr(J) + ' '; end; end; Gruß Hansa P.S.: Lese gerade, da werden auch Pointer benutzt, gehen tut es also anscheinend, wie ich anfangs vermutet habe. |
Hi,
das hier habe ich gemeint (falscher Beitrag gepostet), ohne Englisch wärs natürlich jetzt schlecht : Zitat:
Gruß Hansa |
hi,
ich habe beide beiträge gerade überflogen, der letzte beschreib aber nur ein eindemensionales array ich lese eine baumstrucktur ein, vergleichbar mit xml, da ich nicht weiss wieviele "blätter" ein "ast" hast brauche ich ein mehrfach dynamisches array. es sollten auf die "blätter" mit einem index zugegriffen werden |
Zitat:
Der letzte Artikel beschriebt einfach nur das Verhalten eines dynamischen arrays anhand eines 1-Dimensionalen arrays, was nicht heißt, dass das nicht auch genauso mit mehrdimensionalen arrays funktioniert. Gruß Jan |
Uff,
Zitat:
Gruß Hansa |
Hallo Hansa,
was jagt dir denn da so einen großen Schrecken ein? Ich würde das über einen rekursiven Algorythmus lösen, ähnlich dem des Dateistruktur Auslesens und dann dementsprechend im rekursiven Algorythmus den dynamischen Array erweitern. Klingt doch garnicht so schwer.... Für Belehrungen bin ich natürlich immer dankbar! Gruß Jan |
Hi,
für mich ist das da im Moment ein Gruselkabinett. :spin: Zeiger kann ich schon nicht sehen. Was noch schlimmer ist : rekursive Prozeduren und dann noch zusammen mit Zeigern. Aber Du hast schon Recht wenn so etwas in der Art und Weise aufgebaut werden muß, dann wirklich schon rekursiv. Mit dynamischen Arrays habe ich mich noch nicht so beschäftigt, aber ist es nicht so, daß diese nur in sofern dynamisch sind, daß die Größe erst zur Laufzeit festgelegt wird ? Dies würde aber bedeuten, daß Du eine Maximallänge z.B. von 20 festlegst und eine Exception kriegst falls es doch 21 Elemente sind. Bei einem mehrdimensionalen Baum glaube ich, ist es sehr wahrscheinlich, daß der sehr unausgeglichen ist. Hast Du nun aber einen Baum mit 4 Ästen von jeweils 2,10,15 und 200 Blättern, mußt Du für jeden Ast 200 Blätter vorsehen ! Da stehts ja sogar : Zitat:
Gruß Hansa |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:53 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz