ABOUT Visual Basic Programmieren Programmierung Download Downloads Tips & Tricks Tipps & Tricks Know-How Praxis VB VBA Visual Basic for Applications VBS VBScript Scripting Windows ActiveX COM OLE API ComputerPC Microsoft Office Microsoft Office 97 Office 2000 Access Word Winword Excel Outlook Addins ASP Active Server Pages COMAddIns ActiveX-Controls OCX UserControl UserDocument Komponenten DLL EXE
Diese Seite wurde zuletzt aktualisiert am 09.11.2000

Diese Seite wurde zuletzt aktualisiert am 09.11.2000
Aktuell im ABOUT Visual Basic-MagazinGrundlagenwissen und TechnologienKnow How, Tipps und Tricks rund um Visual BasicActiveX-Komponenten, Controls, Klassen und mehr...AddIns für die Visual Basic-IDE und die VBA-IDEVBA-Programmierung in MS-Office und anderen AnwendungenScripting-Praxis für den Windows Scripting Host und das Scripting-ControlTools, Komponenten und Dienstleistungen des MarktesRessourcen für Programmierer (Bücher, Job-Börse)Dies&Das...

Themen und Stichwörter im ABOUT Visual Basic-Magazin
Code, Beispiele, Komponenten, Tools im Überblick, Shareware, Freeware
Ihre Service-Seite, Termine, Job-Börse
Melden Sie sich an, um in den vollen Genuss des ABOUT Visual Basic-Magazins zu kommen!
Informationen zum ABOUT Visual Basic-Magazin, Kontakt und Impressum

Zurück...

Dateierweiterung extrahieren

Zurück...


Anzeige

Armin Zingler/(-hg) mailto:hg_getfileextension@aboutvb.de

Auf den ersten Blick scheint das Extrahieren der Dateierweiterung (Extension) einer Datei eine klare Aufgabe zu sein: Sie suchen den ersten Punkt ab dem Ende des Dateinamens und haben damit die Erweiterung, die hinter dem Punkt beginnt. Finden Sie keinen Punkt, hat die Datei auch keine Erweiterung.

Solange es sich um einen Dateinamen ohne Pfadteile handelt, funktioniert das auch sicher. Sobald Sie es jedoch mit einem ganzen Pfad zu tun haben, ist die beschriebene Vorgehensweise nicht mehr sicher. Denn falls einer der übergeordneten Pfadbestandteile selbst eine Erweiterung hat und die Datei am Ende bzw. der letzte Pfad keine, würden Sie so den gesamten Rest ab dem gefundenen letzten Punkt erhalten, bestehend aus der Erweiterung dieses Pfadbestandteils und aus allen nachfolgenden Pfadbestandteilen. Beispiel:

c:\abc.def\ghi\jkl

ergäbe:

def\ghi\jkl

Zu einem korrekten Ergebnis gelangen Sie, wenn Sie zunächst sowohl die Position des letzten Punktes als auch die des letzten Backslashs ermitteln. Dann prüfen Sie, falls überhaupt ein Punkt gefunden wurde, ob die Position des letzten Backslash kleiner als die des letzten Punktes ist - nur dann markiert der Punkt den Beginn der Dateierweiterung des letzten Pfadbestandteils.

Ab Visual Basic 6 können Sie zur Ermittlung der jeweils letzten Positionen die Funktion MSDN Library - VB InStrRevInStrRev verwenden:

Private Function GetFileExtension(Path As String) As String
  Dim nPosDot As Long
  
  nPosDot = InStrRev(Path, ".")
  If nPosDot Then
    If InStrRev(Path, "\") < nPosDot Then
      GetFileExtension = Mid$(Path, nPosDot + 1)
    End If
  End If
End Function

In Visual Basic 5 und früheren Versionen steht die Funktion InStrRev noch nicht zur Verfügung - Sie müssen dafür eine eigene Implementierung mit einer schnellen Suche von vorne auf der Basis der MSDN Library - VB InStrInStr-Funktion verwenden:

Private Function GetFileExtension5(Path As String) As String
  Dim i As Integer
  Dim nPosDot As Integer
  Dim nPosBS As Integer
  Dim nStart As Integer
  
  Do
    nPosDot = InStr(nStart + 1, Path, ".")
    If nPosDot Then
      nStart = nPosDot
    Else
      nPosDot = nStart
      Exit Do
    End If
  Loop
  nStart = 0
  Do
    nPosBS = InStr(nStart + 1, Path, "\")
    If nPosBS Then
      nStart = nPosBS
    Else
      nPosBS = nStart
      Exit Do
    End If
  Loop
  If nPosDot Then
    If nPosBS < nPosDot Then
      GetFileExtension5 = Mid$(Path, nPosDot + 1)
    End If
  End If
End Function

Modul modGetFileExtension (modGetFileExtension.bas - ca. 1,3 KB)


Artikel
Zum Download-Bereich dieses Artikel
Mail an den Autor dieses Artikels

KnowHow
Zur KnowHow-Übersicht

KnowHow-Themen
Themen - Allgemeines
Themen - Entwicklungsumgebung (VB-IDE)
Themen - Forms
Themen - Steuerelemente (Controls)
Themen - Grafik
Themen - Dateien
Themen - UserControls
Themen - Einsteiger-Tipps
Themen - Wussten Sie...?

Übersicht nach Titeln in alphabetischer Reihenfolge
Übersicht nach Erscheinungsdatum

Schnellsuche



Zum Seitenanfang

Copyright © 1999 - 2017 Harald M. Genauck, ip-pro gmbh  /  Impressum

Zum Seitenanfang

Zurück...

Zurück...

Download Internet Explorer