Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Detecting file type
Message
De
14/08/2005 07:28:06
 
 
À
13/08/2005 19:44:04
Information générale
Forum:
Visual FoxPro
Catégorie:
Photos et traitement d'images
Divers
Thread ID:
01040691
Message ID:
01040764
Vues:
16
You're welcome.

It's funny, but I actually needed this function myself today. So I wrote the function Filetype() for this, you can easily extend the function to find other file types. The function accepts both file names and variables as a parameter. It returns an empty string for unknown file types and for invalid parameters.
Function filetype
  Lparameters lcData
  Local lcReturn,lcContents
  If Pcount()=0 or Vartype(lcData)#'C'
    lcReturn=''
  Else 
    If ADir(laDummy,lcData)>0 && File
      lcContents=FileToStr(lcData)
    Else && Memory variabøe
      lcContents=lcData
    EndIf 
    Do case 
      Case Len(lcContents)<4
        lcReturn=''
      Case left(lcContents,3)=CHR(0xFF)+CHR(0xD8)+CHR(0xFF)
        lcReturn='JPG'
      Case left(lcContents,3)='GIF'
        lcReturn='GIF'
      Case substr(lcContents,42,3)='EMF'
        lcReturn='EMF'
      Case left(lcContents,4)=CHR(0xD7)+CHR(0xCD)+CHR(0xC6)+CHR(0x9A)
        lcReturn='WMF'
      Case left(lcContents,4)=CHR(0x4D)+CHR(0x4D)+CHR(0x00)+CHR(0x2A)
        lcReturn='TIF'
      Case left(lcContents,4)=CHR(0x89)+'PNG'
        lcReturn='PNG'
      Otherwise 
        lcReturn=''
    EndCase 
  EndIf 
Return lcReturn
>Tore,
>
>Thank you! I would have missed the EMF header.
>
>Malcolm
>
>>As far as I could find out with a hex editor:
>>EMF: substr(yourfile,42,3)='EMF'
>>TIF: starts with 4D-4D-00-2A (hex()
>>WMF: starts with D7-CD-C6-9A (hex()javascript:MessageSubmit()
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform