AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Dynamisches Array erzeugen

Ein Thema von Snoop007 · begonnen am 20. Jan 2003 · letzter Beitrag vom 22. Jan 2003
Antwort Antwort
Seite 2 von 2     12
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#11
  Alt 21. Jan 2003, 13:58
Hm, seltsam, ich dachte, es wäre umgekehrt. Zugegeben, ich kenne C++ nur sehr oberflächlich und hab noch nie Code darin geschrieben, aber soweit ich weiß, sind dyn. Arrays in C++ nur insoweit dynamisch, als dass zur Laufzeit die Größe bei der Instantiierung beliebig festgelegt werden kann. Danach ist Schluss. Hier könnt ihr micg aber gerne eines Besseren belehren, da ich wie gesgt, noch kaum Umgamg mit C++ hatte.
Bei ObjektPascal sieht das aber anders aus. Da gibt es eine schöne Funktion namens SetLength, die nicht nur für Strings, sondern auch für dyn. Arrays gillt. Und man kann sie nicht nur beim Erstellen des Arrays aufrufen, sondern so oft wie man will. Und das Tollste ist, dass die Daten im Array innerhalb der neuen Größe erhalten bleiben. Also entweder sprecht ihr von einer anderen Sprache oder ich träumte die letzten zwei, drei Jahre einen langen, schönen Traum...
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Benutzerbild von X-Dragon
X-Dragon

Registriert seit: 14. Jan 2003
Ort: Schortens
289 Beiträge
 
Delphi 6 Enterprise
 
#12
  Alt 21. Jan 2003, 16:17
Hier hab ich was zu Array gefunden (mehrdimensional, dynamisch,...), vielleicht hilft das ja weiter:
http://home.t-online.de/home/PeterJH...les/arrays.htm

Beschränkte Arrays haben mir bisher immer gereicht, deshalb warte ich mal ab wie sich das hier so entwickelt .
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#13
  Alt 21. Jan 2003, 17:17
Hallo,

das hört sich ja interessant an.

Baumstrukturen und deren dynamische Verwaltung bearbeite ich immer mittels TTreeNode-Objekten.

Ehrlich habe ich die noch nicht ohne TTreeView verwendet, aber ich glaube der muß nicht unbedingt sein.
Der Vorteil ist, dass einige nützliche Methoden für die "Zweige" mitgeliefert werden wie "GetNext", GetFirstChild" etc.

Die Eigenschaft TTreeNode.Data kann man gut für Zeiger auf eigene Records verwenden.

Jetzt bitte nicht schimpfen, ich nenne es Iteration, aber von mir aus können wir es auch Recursion nennen (ich meine Methode ruft sich selbst auf) ist der beste Ansatzt um einen Baum zur Laufzeit mit x-beliebigen Ästen abzuarbeiten. Ich mach es jedenfalls immer so.

Gruß Oki
  Mit Zitat antworten Zitat
lodda

Registriert seit: 6. Dez 2002
65 Beiträge
 
Delphi 5 Standard
 
#14
  Alt 21. Jan 2003, 17:40
Hallo

@oki: Nur mal so nebenbei: Soweit ich weiß spricht man von Iteration, wenn man mit Schleifen arbeitet, die irgendeinen Wert hoch- bzw. runterzählen.
Von Rekursion spricht man wenn sich eine Methode selbst aufruft oder so ähnlich.

Jetzt noch eine Frage an alle: Muss der Speicher der mit SetLength reserviert wurde auch von Hand wieder freigeben werden, oder erledigt das Delphi automatisch?
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#15
  Alt 21. Jan 2003, 17:50
Hallo Lodda,

ja ja, ich hab ja schon gesagt dass ich das nicht so piniebel sehe. Du hast sicher Recht. Mir ist ja wichtiger dass ich jemandem helfen kann.

Mit SetLength belegten Speicher kannst du automatisch mit der Zuweisung von nil auf die Variable (dyn Array) frei geben. Das Drumherum macht Delphi.
Weist du der Variablen eine neue Länge zu (zweites mal SetLength) brauchst du dich nicht um den Speicher zu kümmern. Macht alles Delphi. Also ganz easy.

Gruß Oki
  Mit Zitat antworten Zitat
lodda

Registriert seit: 6. Dez 2002
65 Beiträge
 
Delphi 5 Standard
 
#16
  Alt 21. Jan 2003, 17:58
Warum wird der Speicher freigeben, wenn ich der Variable nil zuweise Ich dachte eine Variable darf den Wert nil besitzen.
  Mit Zitat antworten Zitat
Snoop007

Registriert seit: 15. Jan 2003
331 Beiträge
 
Delphi 6 Personal
 
#17
  Alt 21. Jan 2003, 20:17
ich glaube das mein anliegen etwas falsch verstanden wurde
ich weiss wie ich mit dynmischen array's arbeite, diese sind mir auch lieber als statische

mein problem bei der sache ist nur, es wird ja von vornherein festgelegt was für ein array man haben möchte
ein eindemensionales x array of string ein zweidemensionales x array of array of integer usw. ...

bei mir sollte es aber ein n demensionales array sein
genau das was oki angesprochen hat, an TreeNodes habe ich nicht gedacht
ich glaube das hilft mir ungemein

danke allen die hier gepostet haben
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#18
  Alt 22. Jan 2003, 09:52
Hallo Snoop 007,

schön, dass dir meine Idee was gebracht hat. Da ich selber gerade an TreeNodes rumprogrammiere kannst du dich gene weiter direkt an mich wenden wenn du da auf Probleme stößt. So ich kann helf ich gerne.

Für lodda,

schau einfach mal in der Delphi Hilfe unter dem Index dynamische Arrays nach. Da steht alles drin. Es ist wirklich so wie ich sagte.

Gruß Oki
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 02:47 Uhr.
Powered by vBulletin® Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf