Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   SetLength --> Überschreiben der vorhandenen Daten??? (https://www.delphipraxis.net/120766-setlength-ueberschreiben-der-vorhandenen-daten.html)

SimStar001 16. Sep 2008 13:04


SetLength --> Überschreiben der vorhandenen Daten???
 
Hallo ich habe mal ne Frage,


und zwar Nutze ich records und Arrays....


Meine Variablen sind
Delphi-Quellcode:
... Array of Record
Da die Arrays dynamisch sind muss ich ja irgendwann bevor ich sie mal nutze ne Größe festlegen sprich "SetLength" aufrufen....

Ich muss die Array Größe aber während der Programmlaufzeit ständig ändern!

Werden dann meine Vorhandenen Daten mit SetLength überschrieben, sprich gelöscht pder bleiben diese Erhalten!?

Gruber_Hans_12345 16. Sep 2008 13:04

Re: SetLength --> Überschreiben der vorhandenen Daten???
 
bleiben erhalten (wenn du das array vergrößerst)

Luckie 16. Sep 2008 13:06

Re: SetLength --> Überschreiben der vorhandenen Daten???
 
Zitat:

Zitat von SimStar001
Werden dann meine Vorhandenen Daten mit SetLength überschrieben, sprich gelöscht pder bleiben diese Erhalten!?

Man hätte es natürlich auch einfach ausprobieren können. :?

mkinzler 16. Sep 2008 13:08

Re: SetLength --> Überschreiben der vorhandenen Daten???
 
Zitat:

Zitat von Gruber_Hans_12345
bleiben erhalten (wenn du das array vergrößerst)

Aber nur wenn an dieser Speicherstelle genügend Platz ist, sonst wird der Array komplett an einer neuen Speicherstelle erzeugt.

SubData 16. Sep 2008 13:17

Re: SetLength --> Überschreiben der vorhandenen Daten???
 
Dann wird aber der vorhandene Inhalt kopiert... ?!

SimStar001 16. Sep 2008 13:19

Re: SetLength --> Überschreiben der vorhandenen Daten???
 
mh also nur wenn genug speicherplatz vorhanden ist.....


also sollte ich das Array dann vorher schon groß genug dimensionieren?!


und wenn ichs verkleinere dann wird also alles gelöscht!?


Vielen Dank...


Zitat:

Man hätte es natürlich auch einfach ausprobieren können. Confused
--> Leider kann man nicht überall alles ausprobieren!


Also ich brauche Gewissheit, ob a) bei Vergrößerung die Daten erhalten bleiben,
b) bei Verkleinerung die Daten erhalten bleiben,
c) bei Verschiebung des Speicherortes die Daten erhalten bleiben



Wenns wer wiklich 100%ig wüsste wäre es mir eine sehr große Hilfe...



Danke

Christian Seehase 16. Sep 2008 13:23

Re: SetLength --> Überschreiben der vorhandenen Daten???
 
Moin Michael,

Zitat:

Zitat von Luckie
Man hätte es natürlich auch einfach ausprobieren können. :?

wobei sich dann die Frage stellt, ob es zufällig funktioniert hat, oder ob es so sein soll.
Wenn man versucht nach einem Object.Free noch darauf zuzugreifen kann das auch funktionieren.

SubData 16. Sep 2008 13:27

Re: SetLength --> Überschreiben der vorhandenen Daten???
 
In der Hilfe ist SetLength übrigens wunderbar beschrieben.

Wenn das Array vergrößert wird bleiben alle Daten erhalten.
Wenn nicht genug Platz ist, dann gibt es ne Exception!

Soweit ich die Hilfe richtig verstanden habe, bleiben die Daten auch beim Verkleinern erhalten.
Es werden nur die Daten hinten "abgeschnitten".

HenKst 16. Sep 2008 13:31

Re: SetLength --> Überschreiben der vorhandenen Daten???
 
Zitat:

Zitat von SimStar001

und wenn ichs verkleinere dann wird also alles gelöscht!?


Es wird alles Oberhalb der Länge gelöscht die du setzt.
Also abgeschnitten.
Mit Setlength auf 0 wird also alles gelöscht.
Mit Setlenght auf 1 Alles bis auf index 0.
usw.

mkinzler 16. Sep 2008 13:32

Re: SetLength --> Überschreiben der vorhandenen Daten???
 
Zitat:

Wenn das Array vergrößert wird bleiben alle Daten erhalten.
Wenn nicht genug Platz ist, dann gibt es ne Exception!
Wenn überhaupt kein Platz mehr ist ja. Wenn aber woanders genügend Platz ist wird er dort neu erstellt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:50 Uhr.
Seite 1 von 2  1 2      

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