Zur Hauptseite ... Zum Onlinearchiv ... Zum Abonnement ... Zum Newsletter ... Zu den Tools ... Zum Impressum ... Zum Login ...

Pfad, Dateiname und Dateiendung aus Zeichenkette extrahieren

Immer wieder kommt es vor, dass Access-Datenbanken auf Dateien auf der Festplatte zugreifen mssen - sei es fr das Schreiben oder Lesen von Textdateien oder fr andere Zwecke. Fr diese und andere Operationen kann man Funktionen fr den Umgang mit Dateinamen gut gebrauchen. Hier sind drei davon.

Pfad extrahieren

Die erste Funktion ermittelt den Pfad einer Datei. Dazu sucht sie einfach das letzte Backslash im Dateinamen und liefert alles zurck, was sich links davon befindet. Falls kein Backslash enthalten ist, geht die Funktion von einem reinen Dateinamen ohne Pfadangabe aus und liefert eine leere Zeichenkette zurck.

Function ExtractPath(sFilePath As Variant) As String

    ...

    Dim n As Long

    n = InStrRev(sFilePath, "\")

    If n > 0 Then

        ExtractPath = Left$(sFilePath, n - 1)

    Else

        ExtractPath = ""

    End If

    ...

End Function

Dateiname extrahieren

Die zweite Funktion extrahiert den Dateinamen, also prinzipiell den Teil ohne den Pfad. Optional kann man neben dem Dateinamen noch einen zweiten Parameter angeben, der festlegt, ob auch noch die Dateinamenerweiterung abgeschnitten werden soll. Die Funktion liefert dann also die Zeichenkette hinter dem letzten Backslash und vor dem Punkt zurck.

Function ExtractFileName(ByVal sFilePath As Variant, _

        Optional WithExtension As Boolean = True) As String

    Dim sRes As String

    Dim n As Long

    ...

    sRes = sFilePath

    n = InStrRev(CStr(sRes), "\")

    If n > 0 Then

        sRes = Mid(sRes, n + 1)

    End If

    If Not WithExtension Then

        n = InStrRev(sRes, ".")

        If n > 0 Then

            sRes = Left(sRes, n - 1)

        End If

    End If

    ExtractFileName = sRes

    ...

End Function

Dateiendung ermitteln

Die letzte Funktion zur Zerlegung des Dateinamens liefert allein die Dateiendung. Dabei werden solche Sonderflle bercksichtigt, dass eine Datei gar keine Dateiendung aufweist oder dass ein Verzeichnisname einen Punkt enthlt, der Dateiname aber nicht.

Function ExtractExt(sFilePath As Variant) As String

    On Error Resume Next

    Dim n As Long

    Dim b As Long

    n = InStrRev(sFilePath, ".")

    b = InStrRev(sFilePath, "\")

    If n > b Then

        ExtractExt = UCase(Mid(sFilePath, n + 1))

    Else

        ExtractExt = ""

    End If

End Function

© 2003-2015 André Minhorst Alle Rechte vorbehalten.