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.
Scarabol
Beiträge: 1427 Registriert: 30.11.2005 21:00
Beitrag
von Scarabol » 14.04.2008 12:25
Hi Leute,
Code: Alles auswählen
;
**********************************************************************
;
; ListDirectory() - PB-Include
;
; Author: Scarabol
; Version: 4.10
; Datum: 14-02-2008
;
; **********************************************************************
;
; ListDirectory(Directory$, Level, Pattern$)
;
; Beschreibung:
; Listet alle im Verzeichnis befindlichen Dateien und Unterverzeichnisse auf.
;
; Rückgabewert:
; Die Funktion gibt einen String zurück.
; Die Einträge sind durch Chr(10) getrennt.
;
Procedure.s ListDirectory(directory$, level.l=0, pattern$="*.*")
Protected dir$, d.l, t$
d = ExamineDirectory(#PB_Any, directory$, pattern$)
While NextDirectoryEntry(d)
If DirectoryEntryType(d) = #PB_DirectoryEntry_Directory
If Not (DirectoryEntryName(d) = "." Or DirectoryEntryName(d) = "..")
dir$ + directory$+DirectoryEntryName(d)+"\" + Chr(10)
If level > 0
t$ = ListDirectory(directory$+DirectoryEntryName(d)+"\", level-1)
If t$
dir$ + t$
EndIf
EndIf
EndIf
ElseIf DirectoryEntryType(d) = #PB_DirectoryEntry_File
dir$ + DirectoryEntryName(d) + Chr(10)
EndIf
Wend
ProcedureReturn dir$
EndProcedure
; **********************************************************************
;
; ListDirectory() - Example
EnableExplicit
Define d$
Define c.l
d$ = ListDirectory("C:\Windows\")
For c = 1 To CountString(d$, Chr(10))+1
Debug StringField(d$, c, Chr(10))
Next
;
; **********************************************************************
Gruß
Scarabol
Zuletzt geändert von
Scarabol am 14.04.2008 13:23, insgesamt 1-mal geändert.
Abgeschlossen Projekte:
Schreibmaschine, Bildschirmlupe, Wings3DtoOgreMeshConverter
Watch:
PureArea
PB-V: 4
WinXP
STARGÅTE
Kommando SG1
Beiträge: 7031 Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:
Beitrag
von STARGÅTE » 14.04.2008 12:34
lol ?
Wozu gibs den Parameter Pattern$, wenn dieser einfach ignoriert wird ?
Zuletzt geändert von
STARGÅTE am 14.04.2008 12:36, insgesamt 1-mal geändert.
Kiffi
Beiträge: 10714 Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9
Beitrag
von Kiffi » 14.04.2008 12:35
da musste noch mal die Beschreibung zum Code anpassen:
-> gibt alle Ordner rekursiv zurück
-> gibt alle Dateien auf Ebene 1 zurück
Grüße ... Kiffi
a²+b²=mc²
Joel
Beiträge: 851 Registriert: 21.04.2006 19:22
Beitrag
von Joel » 14.04.2008 16:30
Der Code oben gibt bei Dateien ja z.B. "Test.txt" zurück, bei Ordnern jedoch den Kompletten Pfad, was muss ich an dem Programm oben machen, damit es bei Ordnern auch nur den Ordnernamen zurückgibt???
----------------------------------------------------------
PB 5.20 Beta 10 | Windows 7
Scarabol
Beiträge: 1427 Registriert: 30.11.2005 21:00
Beitrag
von Scarabol » 14.04.2008 16:33
Hi,
dir + directory + directoryentry...
Hier musste das directory weglassen...
Gruß
Scarabol
Abgeschlossen Projekte:
Schreibmaschine, Bildschirmlupe, Wings3DtoOgreMeshConverter
Watch:
PureArea
PB-V: 4
WinXP
Joel
Beiträge: 851 Registriert: 21.04.2006 19:22
Beitrag
von Joel » 14.04.2008 16:38
Danke!!!!!!! Klappt Perfekt!!!!!
----------------------------------------------------------
PB 5.20 Beta 10 | Windows 7
Kiffi
Beiträge: 10714 Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9
Beitrag
von Kiffi » 14.04.2008 16:47
@Scarabol: nochmal zur Nachfrage: Der Code soll alle Unterordner
und alle darin befindlichen Dateien eines angegebenen Pfades
zurückgeben?
Grüße ... Kiffi
a²+b²=mc²
Scarabol
Beiträge: 1427 Registriert: 30.11.2005 21:00
Beitrag
von Scarabol » 14.04.2008 18:34
Der gibt alle Ordner und Dateien bis zur angegebenen Tiefe (level) an.
Gruß
Scarabol
Abgeschlossen Projekte:
Schreibmaschine, Bildschirmlupe, Wings3DtoOgreMeshConverter
Watch:
PureArea
PB-V: 4
WinXP
STARGÅTE
Kommando SG1
Beiträge: 7031 Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:
Beitrag
von STARGÅTE » 14.04.2008 18:52
naja funzt aber immer noch nicht richtig (vlt solls auch so sein)
Wenn ich jetzt nach Thumbs.db suchen lasse mit 4 Stufen, werde die unterordner ignoriert.
Du müsstest also die Unterordnersuche und rekursivität in einer eigenen schleife packen und dann die spezielle Dateisuche in einer anderen.
Hier mal meine
Procedure
Zuletzt geändert von
STARGÅTE am 10.07.2010 23:33, insgesamt 3-mal geändert.
NicTheQuick
Ein Admin
Beiträge: 8809 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 » 14.04.2008 18:52
Das ist aber nicht schön, alles so in einen String zu packen. Je mehr Dateien
das werden, desto unhandlicher und langsamer wird das, weil nach jeder
Datei wieder Speicher allokiert werden muss, damit sie an die anderen
angehängt werden kann.