Forum: Algorithmen, Datenstrukturen und Klassendesign
by Uwe Raabe,
24. Feb 2021
Bei dem Exclude-Fall müsste man unterscheiden, ob lediglich ein Verzeichnis angegeben ist oder ein Verzeichnis mit Wildcards. Im ersten Fall kann man das Verzeichnis überspringen (das macht mein erster Vorschlag), aber im zweiten Fall muss das Verzeichnis gescannt und die entsprechenden Einträge ausgefiltert werden.
Um das besser kontrollieren zu können, würde ich die LstExclude in zwei...
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Uwe Raabe,
24. Feb 2021
Wenn ich also mal das Beispiel deines Eingangsposts nehme:
Dann könnte man die Liste so aussehen:
und das würde dann alle jpg- und bmp-Dateien in den drei genannten Verzeichnissen samt ihrer Unterverzeichnisse aufgelistet?
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Uwe Raabe,
24. Feb 2021
Ich sage ja nicht, dass es nicht geht. Es gibt halt noch Lücken bei der Spezifikation bzw. man muss sich einige aus den diversen Posts hier erst zusammensuchen. Konkrete Beispiele wären sicher auch hilfreich.
Ohne Anspruch auf Vollständigkeit:
Kann LstInclude außer relativen Pfaden auch Dateinamen enthalten?
Wenn ja, haben die immer einen Pfad davor oder gelten die für alle Pfade? (z.B:...
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Uwe Raabe,
24. Feb 2021
Die Anforderung, dass die Listen auch Dateinamen (oder womöglich auch Wildcards) enthalten können, macht einen geänderten Ansatz notwendig. Deine Änderungen weichen zu stark von meinem Vorschlag ab, als dass das noch funktionieren würde.
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Uwe Raabe,
24. Feb 2021
Z.B. einen Class-Helper schreiben, der ein AddStrings für ein string-Array unterstützt.
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Uwe Raabe,
24. Feb 2021
Ich bin mir nicht sicher, ob ich das richtig verstanden habe, aber hier mal ein Entwurf mit Verwendung der System.IOUtils. Erstmal ungetestet und ohne Berücksichtigung der Performance.
procedure ListFiles(const Root: string; LstInclude, LstExclude, Target: TStrings);
var
path: string;
S: string;
skip: Boolean;
begin
if (LstInclude <> nil) and (LstInclude.Count > 0) then begin {...
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Uwe Raabe,
23. Feb 2021
Die Anforderungen sind aber noch nicht vollständig definiert, oder?
Was soll passieren, wenn beide Listen gefüllt sind?
Welche Liste hat Vorrang, wenn die Listen sich widersprechen?