AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language SetLength --> Überschreiben der vorhandenen Daten???
Thema durchsuchen
Ansicht
Themen-Optionen

SetLength --> Überschreiben der vorhandenen Daten???

Ein Thema von SimStar001 · begonnen am 16. Sep 2008 · letzter Beitrag vom 16. Sep 2008
Antwort Antwort
Seite 1 von 2  1 2      
SimStar001

Registriert seit: 18. Jan 2008
594 Beiträge
 
#1

SetLength --> Überschreiben der vorhandenen Daten???

  Alt 16. Sep 2008, 14:04
Hallo ich habe mal ne Frage,


und zwar Nutze ich records und Arrays....


Meine Variablen sind ... 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!?
Marco Tröger
  Mit Zitat antworten Zitat
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.439 Beiträge
 
Delphi 2007 Professional
 
#2

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

  Alt 16. Sep 2008, 14:04
bleiben erhalten (wenn du das array vergrößerst)
Gruss Hans

2B or not 2B, that is FF
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

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

  Alt 16. Sep 2008, 14:06
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.
Michael
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#4

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

  Alt 16. Sep 2008, 14:08
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.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von SubData
SubData

Registriert seit: 14. Sep 2004
Ort: Stuhr
1.078 Beiträge
 
Delphi 11 Alexandria
 
#5

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

  Alt 16. Sep 2008, 14:17
Dann wird aber der vorhandene Inhalt kopiert... ?!
Ronny
/(bb|[^b]{2})/
  Mit Zitat antworten Zitat
SimStar001

Registriert seit: 18. Jan 2008
594 Beiträge
 
#6

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

  Alt 16. Sep 2008, 14:19
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
Marco Tröger
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#7

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

  Alt 16. Sep 2008, 14:23
Moin Michael,

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.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von SubData
SubData

Registriert seit: 14. Sep 2004
Ort: Stuhr
1.078 Beiträge
 
Delphi 11 Alexandria
 
#8

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

  Alt 16. Sep 2008, 14:27
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".
Ronny
/(bb|[^b]{2})/
  Mit Zitat antworten Zitat
HenKst

Registriert seit: 7. Jul 2008
113 Beiträge
 
#9

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

  Alt 16. Sep 2008, 14:31
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.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#10

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

  Alt 16. Sep 2008, 14:32
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.
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04: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