Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Stringlist Tutorials? - außerdem: Von Stringlist entf+hinzuf (https://www.delphipraxis.net/60401-stringlist-tutorials-ausserdem-von-stringlist-entf-hinzuf.html)

Coder 6. Jan 2006 12:24


Stringlist Tutorials? - außerdem: Von Stringlist entf+hinzuf
 
Hallo!

ich tu mich noch etwas schwer mit Stringlists und Arrays.
Gibts da gute Tutorials zu?

Müßte akut auch Strings einer Dateiliste eines Verzeichnisses von einem Feld /Strglist in ein anderes Schieben, damit man die nicht doppelt aufrufen kann.
Also, ich möchte alle Dateinamen in Strglist/Array 1 einlesen und dann, wenn angeschaut in StrgL/Arr schieben.

Schiebt Delphi dann die nächstfolgenden an die Stelle des entferten Eintrags ?

Wie kann ich das bei einem Array lösen (ohne alle Felder manuell eins nach oben schieben zu müssen)?

und: wenn jemand das gesehene nocheinmal aufrufen möchte, kann ich das dann einfach wieder an die Stelle dazwischenschieben? Oder nur unten anhängen?



später möchte ich die Dateien mal in dem selben Stringlist/Array nachdem einlesen nach Datum oder Dateiname oder Größe sortieren.
Wie macht man das?

malo 6. Jan 2006 12:29

Re: Stringlist Tutorials? - außerdem: Von Stringlist entf+hi
 
Mit einem Array musst du alles selbst machen ;)

Außerdem solltest du dir die Hilfe zu Delphi-Referenz durchsuchenTStringList und Delphi-Referenz durchsuchenarray mal ansehen. Bei der Stringlist ist die Funktion Delphi-Referenz durchsuchenAdd wohl sehr hilfreich :zwinker:

TheAn00bis 6. Jan 2006 12:30

Re: Stringlist Tutorials? - außerdem: Von Stringlist entf+hi
 
Hier ist ein Tutorial: http://www.dsdt.info/tutorials/listen/?page=2

Über die Prozedur "add("bla")" fügt er das immer hinten an, wenn du das meintest.

Wenn du sowas wie "insert" suchst kann ich dir nicht helfen

Du könntest statt eines Arrays eine TList oder TObjectList nehmen, in die eine Klasse einfügst, die einen String als Attribut hat.
Dort kann man ohne Probleme einfügen.

Coder 6. Jan 2006 13:43

Re: Stringlist Tutorials? - außerdem: Von Stringlist entf+hi
 
und nen Arry schnell löschen?

ich denke da so an ca. 10000 Felder.
Gibts da nen Clear befehl?

oder muß ich die dennoch alle einzeln durchlaufen?

dahead 6. Jan 2006 13:56

Re: Stringlist Tutorials? - außerdem: Von Stringlist entf+hi
 
Mit SetLength legst du die Länge eines Arrays fest. Wenn du ihn also leeren willst, rufst du einfach SetLength(myArray, 0) auf.

Falls dessen Elemente Objekte sind, solltest du diese vorher in einer Schleife freigeben (for I := High(myArray) downto Low(myArray) do myArray[I].Free).

Auch in ein Array kannst du Elemente einfügen, indem du ihn um ein Feld erweiterst, einen Eintrag nach hinten verschiebst und den neuen an die freigewordene Position stellst.

Wichtig bei Arrays ist, den Befehl SetLength nicht in einer Schleife aufzurufen, das führt zu Performanceverlust.

Wie andere auch schon gesagt haben, empfiehlt sich je nach Daten die gespeichert werden sollen auch TObjectList, TStringList und so weiter.


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