Button Home/Top/Zurück


Filename/Pathname


Bei der Programmierung mit VBA wird man früher oder später auf das Problem stossen, dass man von einem Filenamen mit Pfadangabe entweder nur den Dateinamen oder nur die Pfadangabe benötigt.
Für den Dateinamen kann man hierzu am einfachsten die Funktion Dir() verwenden. So liefert der Funktionsaufruf Dir("C:\Temp\Test.txt") den Wert Text.txt zurück, vorausgesetzt die Datei C:\Temp\Text.txt existiert.

Wenn vorher nicht bekannt ist, ob die Datei tatsächlich existiert, kann mit folgender Funktion der Dateiname aus der Filenamen ermittelt werden.
Function GetFilename(FileName As String) As String
'
' Ermittelt aus einem Filenamen mit Pfad den Dateinamen.
' Bsp.: ermittelt aus C:\Temp\Test.txt den Namen Test.txt
'
' IN:   FileName    Filename mit Pfadangabe
' OUT:  Dateiname oder leeren String (im Fehlerfall)
'
Dim i As Integer    ' Zähler
Dim s As String     ' Returnwert
    '
    ' Default-Returnwert setzen
    '
    GetFilename = ""
    '
    ' Parameter prüfen
    '
    If Trim(FileName) = "" Then Exit Function
    '
    ' Zähler auf Ende des Filenamen setzen
    '
    i = Len(FileName)
    '
    ' Schleife, bis zum ersten "\" im Filenamen
    ' oder bis der Zähler auf 1 gelandet ist
    '
    While i > 1 And Mid(FileName, i, 1) <> "\"
        i = i - 1
    Wend
    '
    ' wenn der Zähler jetzt 1 ist, dann war im
    ' Paramter kein Pfad enthalten.
    '
    If i = 1 Then
        s = ""
    Else
        '
        ' Alles klar, nun den Dateinamen aus
        ' dem Filenamen herausholen (alles
        ' nach dem letzten "\")
        '
        s = Right(FileName, Len(FileName) - i)
    End If
    '
    ' nicht vergessen, daß Ergebnis zurückzugeben !
    '
    GetFilename = s
 
 
End Function
 
 
Um die Pfadangabe aus dem Filenamen zu ermitteln kann folgende Funktion verwendet werden.
Function GetPathName(FileName As String) As String
'
' Ermittelt aus einem Filenamen mit Pfad
' die Pfadangabe.
' Bsp.: ermittelt aus C:\Temp\Test.txt den Pfad C:\Temp
'
' IN:   FileName    Filename mit Pfadangabe
' OUT:  Pfadangabe oder leeren String (im Fehlerfall)
'
Dim i As Integer    ' Zähler
Dim s As String     ' Returnwert
    '
    ' Default-Returnwert setzen
    '
    GetPathName = ""
    '
    ' Parameter prüfen
    '
    If Trim(FileName) = "" Then Exit Function
    '
    ' Filenamen in lokale Variable übernehmen,
    ' damit dieser in der aufrufenden Prozedur
    ' so erhalten beleibt wie er war.
    '
    s = FileName
    '
    ' Zähler auf Ende des Filenamen setzen
    '
    i = Len(s)
    '
    ' Schleife, bis zum ersten "\" im Filenamen
    ' oder bis der Zähler auf 1 gelandet ist
    '
    While i > 1 And Mid(s, i, 1) <> "\"
        i = i - 1
    Wend
    '
    ' wenn der Zähler jetzt 1 ist, dann war im
    ' Paramter kein Pfad enthalten.
    '
    If i = 1 Then
        s = ""
    Else
        '
        ' OK, nun die Pfadangaben aus dem Filename
        ' herausholen (alles bis zum letzten "\")
        '
        s = Left(s, i - 1)
    End If
    '
    ' nicht vergessen, daß Ergebnis zurückzugeben !
    '
    GetPathName = s
 
End Function
 

Modul Icon Funktion GetFilename als Textfile zum downloaden.
Modul Icon Funktion GetPathName als Textfile zum downloaden.

Button Home/Top/Zurück