IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Détection format fichier


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 9
    Par défaut Détection format fichier
    Bonjour

    j'ai un pb de détection de format de fichier. Je travaille en VC6.
    Un fichier txt encodé en utf-8 ans BOM est reconnu par Ultra Edit en "U8-DOS", par notepad++ en "ANSI as UTF-8". Lorsque je le visualise en hexa, il commence par "FF FE", or, quelque soit la méthode que j'utilise pour lire ce fichier, je n'arrive pas à voir ces caractères FF FE, je lis systématiquement les premiers caractères de texte.
    Quelqu'un aurait-il une idée ?

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 064
    Par défaut
    Ouvrir en mode binaire?

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 9
    Par défaut
    Même ça ne marche pas :
    FILE* f;
    BYTE * bom = new BYTE[4];
    int n = 0;
    f = fopen(m_strFichier, "rb");
    bom[0] = fgetc(f);
    bom[1] = fgetc(f);
    delete [] bom;
    fclose(f);

  4. #4
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    peut tu donner un fichier comme exemple?

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 9
    Par défaut
    D'après mes recherches, il s'agirait plutôt d'un codage UTF-16 LE
    J'ai joint le fichier
    Fichiers attachés Fichiers attachés

  6. #6
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    avec quoi visualise tu "FF FE" ?

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 9
    Par défaut
    Citation Envoyé par Mongaulois Voir le message
    ...
    j'ai essayé avec hexedit et je n'ai pas ces caractère...
    Comme quoi, j'ai trop d'imagination des fois ....

    Citation Envoyé par Mongaulois Voir le message
    Bon j'ai réécrit ton fichier en UTf16 avec notepad++.
    Désolé, je ne peux pas me permettre de convertir les fichiers, je ne les maitrise pas, ils arrivent et je dois les traiter .....
    C'est justement pour cela que je dois détecter leur format, car il peut être différent.

    Citation Envoyé par Mongaulois Voir le message
    Il fallait donc juste l'ouvrir en binaire comme le disait zais_ethael
    C'est ce que j'ai fait :
    Citation Envoyé par YvesCa Voir le message
    f = fopen(m_strFichier, "rb");
    "rb" veut dire en mode read et en binaire

    De plus, si je convertis préalablement le fichier, je n'ai effectivement plus aucun problème.
    Là, en fait le problème est : comment détecter un fichier en UTF-8 sans BOM ?

  8. #8
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    http://www.codeguru.com/cpp/misc/mis...le.php/c10451/
    Pour le savoir sans BOM, je pense que tu doit faire une première passe et vérifier que les octet on le poids le plus fort a 0
    un truc comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    bool Unicode(const char & c)
    {
    return c & 0x80;
    }

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 9
    Par défaut
    Je ne sais pas pourquoi, mais l'exemple que j'avais téléchargé s'obstine à rester en ASCII.
    J'ai refait des exemples testé et vérifiés.
    Dans les deux cas, c & 0x80 me retourne 0.
    Je continue mes recherches sur codeguru .....
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. [OS] I tunes - format fichier
    Par Pascal26 dans le forum Apple
    Réponses: 12
    Dernier message: 16/12/2007, 17h56
  2. Formater fichier excel avec Access
    Par subnox dans le forum VBA Access
    Réponses: 4
    Dernier message: 30/08/2007, 14h11
  3. formats fichiers Excel XML Open XML
    Par arkhamon dans le forum Excel
    Réponses: 2
    Dernier message: 25/05/2007, 21h55
  4. [Oracle 10g] Pbs de format fichiers UTF8
    Par fguigui dans le forum Administration
    Réponses: 2
    Dernier message: 23/04/2007, 16h15
  5. formats fichiers (ms3d,bsp,md2,3ds,x)
    Par Husqvarna dans le forum Moteurs 3D
    Réponses: 5
    Dernier message: 22/05/2006, 04h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo