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/)
-   -   Delphi Array: Maximale Anzahl nicht festlegen (https://www.delphipraxis.net/25675-array-maximale-anzahl-nicht-festlegen.html)

yankee 10. Jul 2004 11:09


Array: Maximale Anzahl nicht festlegen
 
Seit mir bitte nicht böse, dass ich das frage. Als ich aray in der Suche eingegeben habe, kamen mir direkt 40 Seiten Suchergebnisse entgegen. Die erste Seite habe ich noch durchsucht, aber 40...

Ich habe jedenfalls einen Record:
Delphi-Quellcode:
  TArbeit =record
    datum :String;
    von :integer;
    nach :integer;
    zeit :integer;
  end;
Und möchte einen Array davon. Da ich den Array aus einer Textdatei einlesen möchte ergibt sich das Problem, dass diese Deklaration:
Arbeit :array[0..100] of TArbeit;
unzireichend ist, weil ich nicht weiß, wieviele Einträge die Textdatei hat. Dazu kommt noch, dass ich die Array verändere und welche lösche und hinzufüge. Daher meine Frage:
Kann man Arrays quasi "dynamisch" erzeugen??

CalganX 10. Jul 2004 11:10

Re: Array: Maximale Anzahl nicht festlegen
 
Hi,
das Stichwort lautet ... *tata* ... Hier im Forum suchenDynamische Arrays. ;)

Chris

Christian S. 10. Jul 2004 11:14

Re: Array: Maximale Anzahl nicht festlegen
 
Hi!

Ja, das geht! Und den Namen hast Du auch schon richtig erraten: "dynamische Arrays".

Die Deklaration sieht so aus:
Delphi-Quellcode:
var
  myArr : Array of Integer;
Und die Größe legst Du so fest:
Delphi-Quellcode:
  SetLength(myArray, 10);
Damit hat das Array dann Elemente von 0 bis 9.

ABER: Rufe SetLength so wenig wie möglich auf! Es kann unter Umständen viel Speicher fressen und das Schnellste ist es auch nicht.

Ich habe hier ein Tutorial veröffentlicht.

MfG
Peter

SirThornberry 10. Jul 2004 11:20

Re: Array: Maximale Anzahl nicht festlegen
 
Nimm lieber TList anstelle von Arrays, das ist wesentlich schneller

semo 10. Jul 2004 11:26

Re: Array: Maximale Anzahl nicht festlegen
 
kann SirThornberry nur zustimmen...

lade ein Datenpaar aus der Datei in eine Variable vom Typ TARbeit
und hänge diese Variable dann der Liste mit myList.Add(variable) an.

dann springst du weiter zum nächsten Paar usw...

--> ne simple Schleife :wink:

ist sauberer als mit dynamischen arrays zu arbeiten!

yankee 10. Jul 2004 12:10

Re: Array: Maximale Anzahl nicht festlegen
 
mhh. TList? Never heard... Such nach TList konnte mein wissen nicht erweitern. Kann mir das jemand kurz erklären?

Mirilin 10. Jul 2004 13:31

Re: Array: Maximale Anzahl nicht festlegen
 
:hi:

Hier hab ich Dir einen Link zu einem Tutorial zu TList :)



mfg Tobias

semo 10. Jul 2004 13:39

Re: Array: Maximale Anzahl nicht festlegen
 
wie der name schon ausdrückt: eine liste..

genauer: eine Liste von objekten bzw Pointern

yankee 10. Jul 2004 17:25

Re: Array: Maximale Anzahl nicht festlegen
 
Oh gott... Ich verstehe mal wieder nur airport...
Also auf der Suche danach herauszufinden, wo der Unterschied zwischen ner Variable mit Pointer (fängt schon damit an, dass ich nicht wirklich ganz genau weiß, was ein Pointer ist) herauszufinden, bin ich auf diesen Thread gekommen.
Nun habe ich verstanden, dass eine Variable ohne pointer weniger Platz im RAM braucht. Außerdem ist die "Bedienung" mit Pointern viel komplizierter, denn man muss immer mit new(Variable); erst irgendwas machen. Da erscheint mir die Variable ohne Pointer so spontan besser...
Was mache ich denn jetzt :?: :cry: :?

yankee 10. Jul 2004 20:15

Re: Array: Maximale Anzahl nicht festlegen
 
Schon gut... Ich habe durch Zufall etwas gefunden, was wohl viel besser hgeeignet ist: Dies hier
Trotzdem danke für eure Hilfe!!!


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:07 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