![]() |
Dynamischer Array
Hallo Leute
Hab noch nichts mit Dynamischen Arrays gemacht deshalb meine Frage. Und zwar möchte Ich folgendes, Ich hab einen Array of Integer [0..5] Nun möchte Ich je nachdem daraus einen Array [0..2] oder [0..4] machen. Also er geht nie höher als 5 aber könnte auch 1,2,3 oder 4 annehmen. Hätte da Jemand von Euch einen Tipp für Mich. Ich hoffe Ich hab mich einigermaßen verständlich ausgedrückt. |
Re: Dynamischer Array
Du deklarierst einfach ein array of Integer und setzt dann je nach Bedarf die Länge mit
![]() |
Re: Dynamischer Array
Danke erst mal für deine Antwort, also bin Ich mit dem hier auf dem richtigem Weg hoff Ich.
Delphi-Quellcode:
var
MyArray: Array of Integer; Groesse:Integer; begin Groesse:=6; SetLength(MyArray,Groesse); end; |
Re: Dynamischer Array
Wieso nicht SetLength(MyArray, 6);?
|
Re: Dynamischer Array
Ich muss ja Irgenwie die Größe je nachdem beeinflussen können
Delphi-Quellcode:
var
MyArray: Array of Integer; Groesse:Integer; begin Groesse:=6; SetLength(MyArray,Groesse); //Zum Anfang //Je nach dem 1,2,3,4 Groesse:=4; SetLength(MyArray,Groesse); end; |
Re: Dynamischer Array
Delphi-Quellcode:
Macht genau das gleiche.
var
MyArray: Array of Integer; begin SetLength(MyArray,6); SetLength(MyArray,4); end; |
Re: Dynamischer Array
Ja das Ist klar nur brauche Ich ja eine Variable, weil Ich ja nicht von vorn herein weiss wie groß der Array sein wird.
|
Re: Dynamischer Array
Zitat:
|
Re: Dynamischer Array
Beachte auch, dass der erste valide Index eines Arrays dann 0 ist.
|
Re: Dynamischer Array
Zitat:
Zitat:
und dann brauche Ich einen Kleineren Array deswegen die Variable die kann Ich ja verändern wie Ich sie brauch. Danke für die vielen Antworten. |
Re: Dynamischer Array
Zitat:
BTW. Wenn die Größe des Arrays sich öfters ändert, ist es ratsamer die Größe nicht gleich anzupassen, da bei jeder Größenänderung ein neuer Array mit der neuen Größeangelegt wird und dann die Daten dorthin kopiert werden. |
Re: Dynamischer Array
Eigentlich wäre ein array[0..5] effizienter, wenn man die Länge unbedingt braucht, kann man sie ja extra in einer Variable speichern. So spart man sich das Speicher-Umschichten.
|
Re: Dynamischer Array
Bei 5 Werten in einem Array sollte man sich keine Sorgen um den Speicher machen müssen.
Mein persönlicher Tipp: Nutze TObjectList anstatt arrays, und du bist den ganzen Ärger mit setlength los. |
Re: Dynamischer Array
Zitat:
|
Re: Dynamischer Array
Bei einem array of Integer mit 6 Elementen gleich eine Containerklasse zu schreiben ist doch etwas oversized, oder etwa nicht?
|
Re: Dynamischer Array
Zitat:
Aber Objektlisten find ich einfacher in der Handhabung. |
Re: Dynamischer Array
Man könnte auch die Integer in einen Pointer casten und dann in eine TList packen.
OK, einen Schönheitswettbewerb gewinnt man damit nicht und man hat auch etwas Overhead mit der TList, aber gehen würde es. :lol: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:44 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