FileScan-Interface (mal 'ne andere Möglichkeit)

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8808
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

FileScan-Interface (mal 'ne andere Möglichkeit)

Beitrag von NicTheQuick »

Ich habe für mein aktuelles Projekt ein Interface gebastelt, dem ich einen
Pfad oder einzelne Dateien übergeben kann, die dann gescannt werden und
in eine Liste abgelegt werden, die dann abgerufen werden kann.

Die Anwendung ist ganz einfach:
Interface mit 'FileScan_Create()' erstellen, mit 'Add()' Dateien oder Pfade
hinzufügen, wenn 'Count()' ungleich Null ist mit 'Reset()' die Liste resetten,
mit 'Next()' durchzappen und mit 'Name()' den Dateinamen auslesen.

Hier die Dateien:

scanner.pbi (FileScan-Interface)
StringPointer.pbi (Include für scanner.pbi)
scanner-test.pb (Beispiel mit Drag'n'Drop)
common.pbi (mein kleines Lieblingsmakro)

Würde mich über Feedback, Bugs oder Anregungen freuen, auch wenn wir
hier nicht in einem Feedback-Forum sind. :allright:

///Edit 1:
Wichtig: Stellt im Hauptquellcode die Compiler-Option "Thread-sichere
Executable erstellen" an


///Edit 2:
common.pbi hinzugefügt.

///Edit 3: (03.04.2008 00:54)
Hab noch ein paar Fehler in 'scanner.pbi' gefunden und hab außerdem
wieder mal 'StringPointer.pbi' angeändert. Jetzt gehts auch mit UniCode. :allright:
Zuletzt geändert von NicTheQuick am 03.04.2008 00:55, insgesamt 2-mal geändert.
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8808
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Beitrag von NicTheQuick »

Mini-Update:
Man kann nun auch direkt die Größe der Dateien in Bytes zurückgeben lassen
ohne sie nochmals durch 'FileSize()' jagen zu müssen. Siehe Beispiel.

Außerdem wird jetzt eine Meldung ausgegeben, wenn man in den
Compiler-Optionen die String-Thread-Sicherheit nicht eingeschaltet hat.
mar
Beiträge: 107
Registriert: 06.08.2005 14:49

Beitrag von mar »

Hi Nic,

XIncludeFile "common.pbi" fehlt zum Testen.

mar
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

mar hat geschrieben:XIncludeFile "common.pbi" fehlt zum Testen.
http://freakshow.gpfclan.de/PureBasic/P ... common.pbi

Grüße ... Kiffi
a²+b²=mc²
mar
Beiträge: 107
Registriert: 06.08.2005 14:49

Beitrag von mar »

Danke schön! :D

funktioniert ...
Nun muss ich mir mal den Code genauer angucken, was da so anders ist :-).

mar
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8808
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Beitrag von NicTheQuick »

Hab noch ein paar Fehler in 'scanner.pbi' gefunden und hab außerdem
wieder mal 'StringPointer.pbi' angeändert. Jetzt gehts auch mit UniCode. :Allright:
mar
Beiträge: 107
Registriert: 06.08.2005 14:49

Beitrag von mar »

Hi,

es ist schwer zu testen, wenn man nur files fallen lassen kann :-).

Aber es ist schon mal möglich zweimal die gleichen parsen zu lassen.
Ich glaube nicht, dass das gewünscht ist?!?

Dein Fenster lässt sich nicht in der Größe ändern. Wär zum Testen nicht schlecht den ganzen Text zu lesen.

Sollte man Ordner extra behandeln? Du wolltest doch da sowas wie schon gescannt Flag setzen. Es würde auch ewig dauern bis man in der langen
dynamischen Liste nur das Directory findet. Man könnte ja eine zweite Liste mit allen Pfaden, die benutzt worden sind, anlegen. (so ähnlich zum Filescan).
Aber das hängt alles davon ab, wie viele Directories es werden sollen. Am besten sind dazu immer Tests für Geschwindigkeit usw.

Es geht auch so ein bissschen in Datenbankoptimierung. Aber da bin ich eh der Falsche.

Hoffe irgendwas davon war brauchbar
mar :lol:
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8808
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Beitrag von NicTheQuick »

Komisch, ich kann auch Ordner fallen lassen. Dann liegt der Fehler wohl bei
Windows. Denn unter Linux geht es ja.

Natürlich ist es möglich zweimal das selbe parsen zu lassen. Wenn der Nutzer
meines Interfaces das so will, dann macht es das auch. Und das
Testprogramm ist ja auch nur ganz einfach gestrickt.

Ein Resize des Fensters kann man ja schnell einbauen. Von mir aus mache
ich das dann in der nächsten Version.
mar
Beiträge: 107
Registriert: 06.08.2005 14:49

Beitrag von mar »

aha jetzt weiß ich was dein interface soll :-)

Ordner gehen auch

ich dachte

Code: Alles auswählen

  IsScanned(Path.s)  ;or File.s             ;Gibt #True zurück, wenn die Datei oder der Pfad gescannt wurde
sollte doppeltes scannen verhindern. Aber so isses OK.

mar
Antworten