VBA Tipp: Dateityp einer unbekannten Datei ermitteln

Aus DBWiki
Wechseln zu: Navigation, Suche

Problem

Ich möchte den Typ einer unbekannten Grafik-Datei ermitteln.

Lösung

Das leistet die folgende Funktion:

Public Function CheckDateiTyp(FName As String) As String
Dim L As Long, S As String, FChan As Integer, I As Long
'
'  Dateityp einer unbekannnten Grafikdatei herausfinden
'
  L = FileLen(FName)
  If L > 64 Then L = 64
  S = String(L, 0)
  FChan = FreeFile()
  Open FName For Binary As FChan
  Get FChan, , S
  If Left(S, 3) = "GIF" And IsNumeric(Mid(S, 4, 2)) And _
     Not IsNumeric(Mid(S, 6, 1)) Then
    CheckDateiTyp = "GIF"
  ElseIf Mid(S, 7, 4) = "JFIF" And Asc(Left(S, 1)) = 255 Then
    CheckDateiTyp = "JPG"
  ElseIf Asc(Left(S, 1)) = 137 And Mid(S, 2, 3) = "PNG" _
     And Mid(S, 5, 2) = vbCrLf Then
    CheckDateiTyp = "PNG"
  ElseIf Left(S, 2) = "BM" And _
  ((Asc(Mid(S, 6, 1)) * 256& + Asc(Mid(S, 5, 1))) * 256 + _
    Asc(Mid(S, 4, 1))) * 256 + Asc(Mid(S, 3, 1)) = FileLen(FName) Then
      CheckDateiTyp = "BMP"
  End If
  Close FChan
End Function


Wiki hinweis.png Anmerkung: Die Funktion ist natürlich für andere Dateitypen erweiterungsfähig.