AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TStringList.Sort

Ein Thema von H.Bothur · begonnen am 30. Sep 2023 · letzter Beitrag vom 30. Sep 2023
Antwort Antwort
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.629 Beiträge
 
Delphi 12 Athens
 
#1

AW: TStringList.Sort

  Alt 30. Sep 2023, 19:54
Lass mal das DateiListe.Sorted := true; weg oder füge ein DateiListe.Duplicates := dupIgnore davor ein.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.338 Beiträge
 
Delphi 12 Athens
 
#2

AW: TStringList.Sort

  Alt 30. Sep 2023, 20:28
Da jeweils nur ein Verzeichnis in sich sortiert wird...

Kann es sein, dass die beiden Letzten in einem anderen Verzeichnis liegen?
Sag ja.

Weißt du was ein Debugger ist?
Haltepunkt auf SerienDB.Memo1.Lines.AddStrings und "nicht" wundern, warum das zwei Mal aufgerufen wird.


UND
Warum ist LfdNummer eine globale Variable?
Warum ist FindAllFiles keine Methode von von TSerienDB? (die würde schön ins private passen)
Warum ...

PS: Delphi-Referenz durchsuchenTDirectory.GetFiles
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (30. Sep 2023 um 21:05 Uhr)
  Mit Zitat antworten Zitat
H.Bothur

Registriert seit: 25. Jun 2012
Ort: Seevetal & Lagos
259 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: TStringList.Sort

  Alt 30. Sep 2023, 21:43
Da jeweils nur ein Verzeichnis in sich sortiert wird...

Kann es sein, dass die beiden Letzten in einem anderen Verzeichnis liegen?
Sag ja.
Nein die beiden letzten sind die Verzeichnisse in denen die anderen Dateien liegen.

Zitat:
Weißt du was ein Debugger ist?
Haltepunkt auf SerienDB.Memo1.Lines.AddStrings und "nicht" wundern, warum das zwei Mal aufgerufen wird.
Ja - aber alle Zeilen sind trotzdem nur einmal in dem Memo - ich habe aber mal die Dateiliste als gloibale Variable genommen (ja - pfui) und die BtnClick verändert:

Delphi-Quellcode:
procedure TSerienDB.BtnLadenClick(Sender: TObject);
begin
  LfdNummer := 1;
  DateiListe := TStringList.Create;
  FindAllFiles(LbEVerzeichnis.Text);
  Dateiliste.Sort;
  SerienDB.Memo1.Lines.AddStrings(DateiListe);
  DateiListe.Free;
end;
Dann kommt das spannenderweise passend raus

Zitat:
UND
Warum ist LfdNummer eine globale Variable?
Weil ich nicht wusste wie ich das am besten mache wenn ich die procedure rekursiv aufrufe

Zitat:
Warum ist FindAllFiles keine Methode von von TSerienDB? (die würde schön ins private passen)
Warum ...
Weil ich immer noch nicht das Konzept mit den Methoden und so verstanden habe - sorry, da hänge ich halt immer noch in den 80ern bei TP3.0

Zitat:
Oh, das kannte ich nicht, das kucke ich mir morgen mal an !

Gruss
Hans
Hans-Georg Bothur
www.hermann-juergensen.de
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.629 Beiträge
 
Delphi 12 Athens
 
#4

AW: TStringList.Sort

  Alt 30. Sep 2023, 21:58
Beim rekursiven Aufruf von FindAllFiles wird aber jedes mal eine eigene DateiListe gefüllt und am Ende in das Memo übertragen. Das Sort wirkt dann halt auch nur auf die gerade aktuelle Instanz. Du solltest die DateiListe als Parameter an FindAllFiles übergeben und das Sort wie auch das Übertragen ins Memo außerhalb (also z.B. in BtnLadenClick) machen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
H.Bothur

Registriert seit: 25. Jun 2012
Ort: Seevetal & Lagos
259 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: TStringList.Sort

  Alt 30. Sep 2023, 21:35
Lass mal das DateiListe.Sorted := true; weg oder füge ein DateiListe.Duplicates := dupIgnore davor ein.
Ich hab das DateiListe.Sorted := true; rausgenommen - ändert leider nichts

Hans
Hans-Georg Bothur
www.hermann-juergensen.de
  Mit Zitat antworten Zitat
Antwort Antwort


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 20:23 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