-
Forum: Algorithmen, Datenstrukturen und Klassendesign
by DieDolly,
24. Feb 2021
Ist TDirectory.GetFiles und TPath das moderne FindFirst FindNext?
Ich habe um alle aufrufe Target.AddStrings noch ein TDirectory.Exists(path) gesetzt, damit es nicht zu Fehlern kommt wenn es da was nicht gibt (Garbage in, Garbage out: falsche Parameter die man übergibt oder so).
Meine testfälle scheinen alle zu funktionieren, was LstInclude angeht. LstExlude muss ich noch testen aber ich...
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
by DieDolly,
24. Feb 2021
Ich habe nicht einmal hinbekommen PathMatchSpecW in Uwe's Code (der für Dateien und Verzeichnisse perfekt funktioniert) einzubauen. Das da ist ja noch komplizierter :D
Ich benutze auch noch MustangpeakVirtualshellTools das kann eh keine Wildcards. Von daher ist es eigentlich egal.
Die entwickler scheinen auch keine Lust zu haben das einzubauen.
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
by DieDolly,
24. Feb 2021
Das ist jetzt eine gute Frage.
Vielleicht eher so, damit die Wildcards ans Verzeichnis gebunden sind
Dateien, Arbeit: das komplette Verzeichnis wird verarbeitet
Freizeit\Fotos\*.jpg: nur jpg-Dateien in Freizeit\Fotos.
So könnte das auch aussehen (Dateien: nur pas-Dateien, Arbeit: komplett, Freizeit\Fotos komplett)
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
by DieDolly,
24. Feb 2021
1) das können Verzeichnisnamen und Dateinamen sein, richtig
2) es ist nie ein Pfad davor bzw. es sollte keiner davor sein
3) Wildcards * und ?, beide werden von PathMatchSpecW unterstützt. Datei.* , *.txt , Dat??.txt usw.
4) siehe 2. Der Basispfad darf nicht dabei sein
5) nein
6) wenn LstInclude Count>0 ist, wird LstExclude ignoriert.
Was widersprecht denn der Nutzung von deinem Code...
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
by DieDolly,
24. Feb 2021
Adminrechte sind ausgeschlossen, da ich Zugriff auf Netzlaufwerke brauche.
Uwe's Lösung ist schon wahnsinnig schnell, jetzt fehlen nur noch Wildcards. Dateien hab ich schon ergänzt.
Für Wildcards kenne ich nur PathMatchSpecW.
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
by DieDolly,
24. Feb 2021
Schade :( dann weiß ich leider nicht weiter als mit FindFirst und FindNext, was aber wieder langsam ist wenn ich das mache weil ich alle Dateien durchgehe.
Schade weil... ich habe noch ein altes Programm rumliegen (nur die ausführbare Datei) wo so ein alter Code von mir angewendet wird.
Bei meiner Festplatte P:\ (portable programme, 66 Verzeichnisse, 1 soll in die LstInclude-List) dauert das...
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
by DieDolly,
24. Feb 2021
Bei LstExclude bleibt Target leider leer. Wenn ich Dateien\Test.txt in LstExclude hinzufüge, bleibt die Liste komplett leer.
Änderre ich TDirectory.GetDirectories zu TDirectory.GetFiles ab, funktioniert es. Aber ist das noch so gewollt?
Hier meine Änderungen, damit auch Dateien funktionieren
function IsDirectory(const aFileName: string): Boolean;
var
R: DWORD;
begin
R :=...
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
by DieDolly,
24. Feb 2021
Ich teste das gleich mal durch. Auf den ersten Blick kann man nur Pfade in die Listen hinzufügen.
Was muss ich abändern, damit man auch Dateien einfügen kann?
Die Listen können Datei-Pfade enthalten.
Wenn ich das Root E:\ habe und in E der Ordner Dateien ist, dort drin eine Datei Test.txt, diese möchte ich gerne ein- oder ausschließen können, den Rest der Dateien in diesem Ordner aber...
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
by DieDolly,
24. Feb 2021
Verstehe diesen Satz nicht. Das zu durchsuchende Verzeichnis darf nicht in einer der beiden Listen vorkommen.
Die beiden Listen dürfen nur Unterverzeichnisse dieses Verzeichnisses beinhalten.
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
by DieDolly,
24. Feb 2021
Halb-zitiert von mir:
Diese StringListen können beispielsweise nach einer Eingabe diesen Inhalt haben
- Dateien
- Arbeit
- Freizeit\Fotos
Wenn das da oben in der ersten Liste steht: nur die Verzeichnisse "Dateien", "Arbeit" und "Freizeit\Fotos" würden in die neue Dateiliste übernommen
ODER
wenn das in der zweiten Liste streht: alle außer genau die oben genannten werden in die neu...
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
by DieDolly,
23. Feb 2021
Beide Listen können nie zeitgleich gefüllt sein.
Ist die erste Liste gefüllt, wird die zweite gar nicht erst befüllt und kann ignoriert werden.
Wie das andersherum aussieht, muss ich noch überlegen.
Die erste Liste soll ausschließlich ihre Einträge vergleichen und Funde in eine Dateiliste schreiben.
Die zweite Liste soll ihre Einträge vergleichen und Funde sollen nicht zur Dateiliste...
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
by DieDolly,
23. Feb 2021
Vielleicht erst ein kleiner Hintergrund.
Ich habe früher mal anhand zweiter StringListen, die gefüllt sein können aber nicht müssen, eine weitere Liste erstellen lassen (eine Dateiliste).
Die eine StringListe enthielt (kann, muss nicht) Pfade, die unbedingt vom Such-Algorithmus (bei mir damals FindFirst, FindNext) in der neuen Dateiliste aufgenommen werden sollen. Die zweite StringListe...