nochmals die DIR.Funktion

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

wega
****
Beiträge: 148
Registriert: So, 03.06.2007 21:37

nochmals die DIR.Funktion

Beitrag von wega »

Hallo zusammen,

der nachfolgende code funktioniert nur halbwegs richtig.

Er gibt nur die Hauptverzeichnisse zurück und nicht die Unterverzeichnisse.
Ebenfalls werden dann auch nur die Dateien gefunden, nach denen gesucht wird, die in den Hauptveruzeichnissen stehen.
Dateien in den unterverzeichnissen werden ignoriert.

Code: Alles auswählen

Sub ShowDir
	dim NextDir as string
	dim AllDirs as string
	dim i as integer
	
	i=1
	AllDirs =""
	NextDir = Dir("C:\*",16)
	
	While NextDir <>""
		Liste(i) = NextDir
		AllDirs = AllDirs & chr(13) & NextDir
		NextDir = Dir
		i=i+1
	Wend
	
	MsgBox AllDirs
	'liste_zeigen liste(),i
	ShowFile liste(),i
end sub

Sub ShowFile (liste(),i)
	dim NextFile as string
	dim AllFiles as string
	dim pfad as string
	dim spfad as string
	dim n as integer
	
	AllFiles =""
	'NextFile = Dir("C:\*",0)
	for n = 1 to i
		pfad = "C:\" & liste(n) & "\"
		spfad = pfad & "*.igs"
		'msgbox spfad
		Nextfile = Dir(spfad,0)
		'msgbox  Dir(spfad,0)
		'msgbox "durchsucht wird: " & Nextfile
	
	While NextFile <>""
		'msgbox pfad & "\" & Nextfile
		on error resume next
		DocFileDateTime = Split(FileDateTime(pfad & "\" & NextFile)," ")
		'msgbox DocFileDateTime(0) Jahreszahl
		'msgbox DocFileDateTime(1) 'Uhrzeit
		Allfiles = AllFiles & chr(13) & pfad & "\" & NextFile & "\" & DocFileDateTime(0) & "\" & DocFileDateTime(1)
		NextFile = Dir
	Wend
	next n
	MsgBox AllFiles
end sub

sub liste_zeigen (liste(),i)
	dim n as integer
	
	for n=1 to i
		print liste(n)
	next n 


end sub
Was muß ich abändern, was mache ich da nicht richtig?

mit Gruß
Werner
bst
*****
Beiträge: 222
Registriert: Mo, 18.01.2010 16:14
Wohnort: Ilsfeld

Re: nochmals die DIR.Funktion

Beitrag von bst »

Hi Werner,

Du müsstest mit den Verzeichnissen die Du in ShowDir bestimmst - das sind die Teile der 1. Ebene - rekursiv ShowDir wieder aufrufen und die neuen Unterverzeichnisse dabei an die Gesamtliste anhängen.

Da das mit Dir vermutlich ziemlich 'ätzend' ist (zu mindestens ist das in M$ VBA so...) mache das vielleicht besser und auch leichter hiermit:

http://www.starbasicfaq.de/Wiekannmandi ... ml#Zweig63

HTH, Bernd
wega
****
Beiträge: 148
Registriert: So, 03.06.2007 21:37

Re: nochmals die DIR.Funktion

Beitrag von wega »

Hallo Bernd,

erstmal vielen Dank für Deine Antwort.
Werde mir die Funktion einmal einbauen.

mit freundlichem Gruß
Werner
Antworten