Dateiliste

15/10/2008 - 12:34 von Herbert Fidesser | Report spam
Hallo NG,

bin verzweifelt!
Die Aufgabe: Alle txt-Dateien eines Ordners in eine Variable schreiben
und mit ";" trennen.

Meine Lösung:
Sub check()
Dim x As String
x = showDir("C:\Labor\LaborExp", "*.*txt")
End Sub
Function showDir(ByVal strPath As String, ByVal wie As String) As
String
Dim strFile, AllFiles As String
If Right(strPath, 1) <> "\" Then strPath = strPath & "\"
If Dir(strPath, vbDirectory) = "" Then Exit Function 'Ordner existiert
nicht
strFile = Dir(strPath & wie)
Do While strFile <> ""
If strFile Like wie Then
AllFiles = AllFiles & strFile & ";"
strFile = Dir
End If
Loop
showDir = AllFiles
End Function

Fehler:
Der erste Dateiname wird korrekt übergeben, dann folgt eine endlose
Reihe von "..".
Was mache ich falsch?
Danke für Hilfe

Gruß
Herbert
 

Lesen sie die antworten

#1 Carsten Sekulla
15/10/2008 - 12:59 | Warnen spam
Hi,

bis auf einige Stilfehler funkt es bei mir,


Option Compare Database
Option Explicit

Public Sub check()
Dim x As String
x = showDir("C:\Dokumente und Einstellungen\sekulla\Eigene Dateien\Text",
"*.txt")
' "*.*txt" wirklich?

Debug.Print x
End Sub

Private Function showDir(ByVal strPath As String, ByVal wie As String) As
String
Dim strFile As String ' bei dir keine String
Dim AllFiles As String

If Right(strPath, 1) <> "\" Then
strPath = strPath & "\"
End If

AllFiles = ""
If Len(Dir(strPath, vbDirectory)) > 0 Then
strFile = Dir(strPath & wie)
Do While Len(strFile) > 0 'noch eine Like ist doppelt gemoppelt
AllFiles = AllFiles & strFile & ";"
strFile = Dir
Loop
showDir = Left$(AllFiles, Len(AllFiles) - 1) 'letztes ; wegschneiden
Else
showDir = "" ' es geht auch ohne Exit Function
End If
End Function


ggf. noch eine Fehlerbehandlung


bin verzweifelt!

Ähnliche fragen