Seite 1 von 1

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

Verfasst: 31.03.2008 00:22
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:

Verfasst: 31.03.2008 16:05
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.

Verfasst: 31.03.2008 21:18
von mar
Hi Nic,

XIncludeFile "common.pbi" fehlt zum Testen.

mar

Verfasst: 31.03.2008 23:37
von Kiffi
mar hat geschrieben:XIncludeFile "common.pbi" fehlt zum Testen.
http://freakshow.gpfclan.de/PureBasic/P ... common.pbi

Grüße ... Kiffi

Verfasst: 01.04.2008 07:28
von mar
Danke schön! :D

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

mar

Verfasst: 03.04.2008 00:55
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:

Verfasst: 03.04.2008 07:41
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:

Verfasst: 03.04.2008 12:43
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.

Verfasst: 03.04.2008 17:18
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