ReadStringFormat()

Syntaxe

Resultat = ReadStringFormat(#Fichier)
Description
Vérifie la présence d'un en-tête BOM (Byte Order Mark) et identifie le format d'encodage des chaînes de caractères. Si un BOM est détecté, le curseur du fichier sera placé juste après le BOM.

Arguments

#Fichier Le fichier à utiliser.

Valeur de retour

  #PB_Ascii  : Aucun BOM détecté. Généralement un fichier texte standard
  #PB_UTF8   : UTF-8 et BOM détecté.
  #PB_Unicode: UTF-16 (little endian) et BOM détecté.
  #PB_UTF16BE: UTF-16 (big endian) et BOM détecté.
  #PB_UTF32  : UTF-32 (little endian) et BOM détecté.
  #PB_UTF32BE: UTF-32 (big endian) et BOM détecté.
Les resultats #PB_Ascii, #PB_UTF8 et #PB_Unicode peuvent être utilisés directement avec ReadString() pour lire le texte à partir du fichier. Les autres constantes sont incluses pour faciliter la détection du type de fichier, mais ne sont pas prises en compte nativement par PureBasic.

Remarques

Si le BOM est détecté, le pointeur de fichier sera placé à la fin du BOM.
Si aucun BOM n'est détecté, la position du pointeur de fichier reste inchangé.

Le BOM (Byte Order Mark) est un moyen couramment utilisé pour indiquer le type d'encodage d'un fichier texte. Il est habituellement placé au début du fichier. Néanmoins, ce n'est pas un standard ni une norme, mais une pratique courante. Ainsi, si aucun BOM n'est détecté au début du fichier, cela ne veut pas forcément dire qu'il s'agit d'un fichier ASCII. WriteStringFormat() peut être utilisé pour écrire un BOM dans un fichier.

Pour plus d'informations, consulter cet article Wikipedia.
Vous trouverez plus d'informations sur le mode unicode avec PureBasic ici.

Exemple

  Fichier$ = OpenFileRequester("Sélectionnez un fichier","","Texte (.txt)|*.txt|Tous (*.*)|*.*",0)
  If Fichier$
    If ReadFile(0, Fichier$) 
      Format=ReadStringFormat(0)   
      CloseFile(0)
      Select Format
        Case #PB_Ascii  
           Debug "Aucun BOM détecté. Généralement un fichier texte standard"
        Case #PB_UTF8   
           Debug "UTF-8 et BOM détecté."
        Case #PB_Unicode
           Debug "UTF-16 (little endian) et BOM détecté."
        Case #PB_UTF16BE
          Debug "UTF-16 (big endian) et BOM détecté."
        Case #PB_UTF32  
           Debug "UTF-32 (little endian) et BOM détecté."
        Case #PB_UTF32BE
           Debug "UTF-32 (big endian) et BOM détecté."
        Default
          Debug "Format inconnu"
       EndSelect
     EndIf
  EndIf

Voir aussi

WriteStringFormat(), ReadString(), OpenFile(), ReadFile()

OS Supportés

Tous

<- ReadString() - File Index - ReadUnicodeCharacter() ->