Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi array länge zur laufzeit um 1 erhöhen (https://www.delphipraxis.net/41468-array-laenge-zur-laufzeit-um-1-erhoehen.html)

Christian18 3. Mär 2005 18:09


array länge zur laufzeit um 1 erhöhen
 
hallo,

ich bins nochmal. wie kann ich mein array zur laufzeit erhöhen??? also ich meine die länge. die inhalte, die schon drinn gespeichert sind, soll erhalten bleiben. wie mache ich das

alcaeus 3. Mär 2005 18:15

Re: array länge zur laufzeit um 1 erhöhen
 
Dynamisches Array:
Delphi-Quellcode:
SetLength(Ar, Length(Ar)+1);
Statisches Array: gar nicht.

Und fuers naechste Mal: Bitte suchen ;)

Greetz
alcaeus

Khabarakh 3. Mär 2005 18:20

Re: array länge zur laufzeit um 1 erhöhen
 
Du brauchst dazu ein dynamisches Array:
Delphi-Quellcode:
var IntegerArray: Array of Integer
Zu Anfang ist dieses leer und hat die Länge 0, mit Delphi-Referenz durchsuchenLength kannst du die Größe ermitteln, mit Delphi-Referenz durchsuchenSetLength festsetzen. Wichtig: Das Array beginnt immer mit dem Index 0!
Delphi-Quellcode:
SetLength(IntegerArray,10);
for i:=0 to Length(IntegerArray)-1 do //oder auch High(), also von 0 bis 9
  IntegerArray[i]:=i;
ShowMessage(IntToStr(IntegerArray[Random(10)]));
SetLength(IntegerArray,0);

Binärbaum 3. Mär 2005 18:32

Re: array länge zur laufzeit um 1 erhöhen
 
Wahlweise kann man auch folgendes verwenden:
Delphi-Quellcode:
var IntArray: Array of Integer
...
SetLength(IntArray,High(IntArray)+2);//Array um ein Element vergrößern
Die Funktion Delphi-Referenz durchsuchenHigh gibt bei Arrays immer den höchsten Index zurück und bei dynamischen Arrays gilt somit:
Code:
Length(IntArr) = High(IntArr)+1
MfG
Binärbaum


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:35 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz