Delphi-PRAXiS
Seite 3 von 3     123

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   FreePascal Delphi Listbox Items nach Teil String sortieren (https://www.delphipraxis.net/194697-delphi-listbox-items-nach-teil-string-sortieren.html)

Zeref Darkmage 31. Dez 2017 16:58

AW: Delphi Listbox Items nach Teil String sortieren
 
[QUOTE=LTE5;1389990]
Zitat:

Der Code lädt nicht zeilenweise. Wenn du denkst der Code würde genau das tun und dafür da sein, hast du ihn nicht verstanden.
Wenn ich sage es lädt zeilenweise, dann lädt es aus der datei die zeilen jeweils auch so wie sie drin stehen


UNd meine Frage an dich,hast du nichts zum beitragen oder warum machst du einen auf Korinthenkacker ?

lg

LTE5 31. Dez 2017 16:59

AW: Delphi Listbox Items nach Teil String sortieren
 
Ich mache nicht den Korinthenkacker. Aber man muss sich auch selber ein bisschen anstrengen statt nur zu kopieren und einzufügen.
Wo bleibt sonst der Lerneffekt?

Zeref Darkmage 31. Dez 2017 17:04

AW: Delphi Listbox Items nach Teil String sortieren
 
Lerneffekt ist wenn ich es nicht kann , es möchte, nach suchen nichts finde und dann nach erfolgreichen funktionieren des Programmes eine neue Anwendung schreibe die sich nur mit dem code Block

des anderen beschäftigt um auch die Funktionsweise zu verstehen. Also mach dir da mal keine Sorgen :) selbst wenn ich es nur rein kopieren sollte kommt der lern Effekt beim nächsten Programm.


Wie auch schon bei der ersten Hilfe mit Quick und Bubblesort.

Delphi.Narium 31. Dez 2017 17:14

AW: Delphi Listbox Items nach Teil String sortieren
 
Hier
Delphi-Quellcode:
FindFirst('Liste*.txt',faAnyFile,sr)
steht im ersten Parameter von FindFirst ein Platzhalter für den Dateinamen.

Es werden also in dem Beispiel alle Dateien geladen, deren name dem Muster [i]Listeirgendwas.txt[(i] entsprechen. Wenn es da nur eine Datei gibt, wird auch nur die geladen. Hier sollten also alle Dateien mit den Namen Liste1.txt, Liste2.txt ... geladen werden.
Man könnte auch
Delphi-Quellcode:
FindFirst('*.*',faAnyFile,sr)
angeben, aber dann werden nicht nur Textdateien, sondern auch Exen, DLLs ... geladen, das wäre vermutlich eher suboptimal ;-)

Deine Namensvorstellungen von weiter oben (Liste(1).txt,Liste(2).txt ...) müssten mit der Routine eigentlich umsetzbar sein.

Die Routine fügt mit AddStrings die zuletzt gelesene Datei immer "hinten an". Der Inhalt von Items ist also nicht irgendwie sortiert.

Aber dem können wir abhelfen (wieder nur hingedadddelt und ungetestet):
Delphi-Quellcode:
var
  sl : TStringList;
  slAlles : TStringList;
  sr : TSearchRec;
begin
  sl := TStringList.Create;
  slAlles := TStringList.Create;
  Listbox1.Items.Clear;
  // Statt Liste*.txt irgendeinen Namensplatzhalter nach eigenen Wünschen.
  // Ggfls. auch noch 'nen Pfad mit angeben.
  If FindFirst('Liste*.txt',faAnyFile,sr) = 0 then begin
    Repeat
      sl.LoadFromFile(sr.Name);
      slAlles.AddStrings(sl);
    until FindNext(sr) <> 0;
  end;
  FindClose(sr);
  slAlles.Sort;
  Listbox1.Items.AddStrings(slAlles);
  slAlles.Free;
  sl.Free;
end;
Wenn Du Besonderheiten bei der Sortierung haben möchtest, so schau Dir mal die Möglichkeiten von TStringList an. Da gibt es auch die Option, eine eigene Sortierroutine zu nutzen. Dazu dient die Methode CustomSort, Infos dazu findest Du z. B. hier: TStringList CustomSort site:delphipraxis.net

Zeref Darkmage 31. Dez 2017 17:28

AW: Delphi Listbox Items nach Teil String sortieren
 
Danke! Ich hatte mir auf deinem Kommentar hin noch mal fix Open Dialog angeguckt und muss sagen das es wirklich um welten einfach zu handeln ist ^^

ich werde mich dafür entscheiden.ich hatte zu test auch die andere variante benutzt.

echt cool :D

Solutor 1. Jan 2018 13:09

AW: Delphi Listbox Items nach Teil String sortieren
 
Ich glaube, nun reden alle aneinander vorbei, bzw. werden jetzt zwei Probleme vermischt.
Der Fragende sieht nun den Wals vor lauter Bäumen nicht mehr und ohne zu erklären,
was man da postet, wird er nur verwirrt.

Ich versuche mal auseinanderzubröseln was ich bisher herauslese:

1. Das Sortieren von Strings nach "Spalten" in Listbox. (Wurde gelöst)
2. Das Einlesen von eben der zu sortierenden Listen in die Listbox. (Wurde alerdings nur an TStringlist beschrieben)
3. Unser Kollege möchte aber gerne mehrere Dateien nacheinander einlesen und in der Listbox aneinander hängen. (Merge)
4. Vermutlich werden diese Dateien in einem gemeinsamen Verzeichnis liegen.
(Beschrieben wurde aber nur wie man automatisiert, eine Liste von Dateien in eine Stringlist bekommt, nicht daber deren Inhalt).

Es geht vermutlich um die Kombination dieser Dinge:

1. Man übergibt ein Verzeichnis.
2. Die Textdateien in diesem Verzeichnis werden ermittelt und nacheinander eingelesen und deren Inhalt den Items der Listbox angehängt.
3. Der Inhalt der Listbox wird sortiert.

Ich schätze das ist der Ansatz.

Zeref Darkmage 1. Jan 2018 13:57

AW: Delphi Listbox Items nach Teil String sortieren
 
jojo wie gesagt der hinweis mit openDialog hat geholfen und das Problem gelöst :D


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:33 Uhr.
Seite 3 von 3     123

Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf