Option
Explicit
Private
Type TUDFileInfo
Idx1
As
Integer
Idx2
As
Integer
Date
As
Date
Name
As
String
Path
As
String
Extension
As
String
End
Type
Public
Sub
Test()
Const
C_FOLDER
As
String
= "X:\Verzeichnis\Unterverzeichnis\"
Dim
strFile
As
String
Dim
udfi
As
TUDFileInfo
strFile = Dir$(C_FOLDER &
"\*.csv"
)
Do
Until
strFile =
""
If
GetUDFileInfo(C_FOLDER & "\" & strFile, udfi)
Then
Debug.Print udfi.Name, udfi.Idx1, udfi.Idx2, Format$(udfi.
Date
,
"yyyy-mm-dd"
)
End
If
strFile = Dir$()
Loop
End
Sub
Private
Function
GetUDFileInfo(Filename
As
String
,
ByRef
UDFileInfo
As
TUDFileInfo)
As
Boolean
With
UDFileInfo
If
InStrRev(Filename, "\") > 0
Then
.Path = Trim$(Left$(Filename, InStrRev(Filename, "\")))
.Name = Mid$(Filename, Len(.Path) + 1, Len(Filename) - Len(.Path))
Else
.Path =
""
.Name = Trim$(Filename)
End
If
If
InStrRev(.Name,
"."
) > 0
Then
.Name = Left$(.Name, InStrRev(.Name,
"."
) - 1)
If
Not
.Name
Like
"Z##_Z##_D######"
Then
Exit
Function
.Idx1 = Mid(.Name, 2, 2)
.Idx2 = Mid(.Name, 6, 2)
.
Date
= DateSerial(Year:=Mid(.Name, Len(.Name) - 5, 2), _
Month:=Mid(.Name, Len(.Name) - 3, 2), _
Day:=Right(.Name, 2))
End
With
GetUDFileInfo =
True
End
Function