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

Access Discussion :

Lecture d'un fichier texte en UTF-8


Sujet :

Access

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2006
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 24
    Points : 16
    Points
    16
    Par défaut Lecture d'un fichier texte en UTF-8
    En résumé, voici mon problème :

    Avec VBA Access, je dois lire (puis traiter) une série de fichiers texte au format UNICODE UTF-8. Et VBA Access semble les lire comme des formats UTF-7, ce qui rend le texte difficilement lisible (tous les signes accentués sont transformé).

    Après la méthode classique de l'Open, j'ai essayé avec OpenAsTextStream, mais ça ne change rien, quelque soit la valeur du Tristate (-2,-1 ou 0). Je ne sais pas comment spécifier que le fichier est en UTF-8.

    Plus précisément :

    J'ai par exemple une fichier TEMP1.txt qui contient cette ligne de texte :

    Au-delà des génétiquement modifiés
    J'ai commencé à lire ce texte avec cette méthode :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Open "C\...\TEMP1.txt" For Input As #1
    Line Input #1, TextArticle
    Debug.Print TextArticle
    Close #1
    Voila ce que ça donne :

    Au-delÃ* des génétiquement modifiés
    J'ai donc essayé avec cette méthode :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Set objFSO = New Scripting.FileSystemObject
    Set objFile = objFSO.GetFile("C:\...\TEMP1.txt")
    Set objtextstream = objFile.OpenAsTextStream(ForReading, TristateTrue)
    Debug.Print objtextstream.ReadLine
    Mais ça ne change rien!

    Je sais aussi qu'il y a bien une méthode avec ADODB qui marche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Set strm = CreateObject("adodb.stream")
    With strm
    .Charset = "utf-8"
    .Type = 2
    .Open
    .LoadFromFile "C:\...\TEMP1.txt"
    t = .ReadText
    Debug.Print t
    .Close
    End With
    Mais le problème est que je dois lire le fichier ligne par ligne, ce qui est impossible avec cette méthode.

    J'ai également cru comprendre sur Internet qu'il existe une manière de spécifier le format avec cette instruction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    objFile.Charset = "UTF-8"
    Mais VB Access me répond que cette méthode n'est pas gérées par cet objet (erreur 438).

    Une dernière chose : vu le nombre et la taille des fichier, leur simple conversion (avec Word par exemple) n'est pas envisageable.

    Je suis donc bien embêté, et vous serai très reconnaissant de me tirer de ce mauvais pas!

    Bien cordialement,

    EL

  2. #2
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonjour,

    As-tu pensé à faire une fonction de conversion?

    pgz
    pluritas non est ponenda sine necessitate - Le rasoir d'Okham
    Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2006
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 24
    Points : 16
    Points
    16
    Par défaut
    C'est finalement ce que j'ai fait (avec le code adodb). Mais n'y a-t-il pas une solution plus élégante?

Discussions similaires

  1. Lecture d'un fichier texte dans un projet TOMCAT
    Par brice_nice dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 03/07/2005, 16h04
  2. lecture d'un fichier texte
    Par benahpets dans le forum MFC
    Réponses: 5
    Dernier message: 22/06/2005, 12h50
  3. [C#] Lecture d'un fichier texte (farfelu)
    Par choas dans le forum Windows Forms
    Réponses: 3
    Dernier message: 11/04/2005, 15h33
  4. Lecture d'un fichier Texte
    Par jcharles dans le forum Bases de données
    Réponses: 8
    Dernier message: 27/10/2004, 15h58
  5. Stockage de données & lecture d'un fichier texte
    Par petitours dans le forum C++Builder
    Réponses: 6
    Dernier message: 13/03/2004, 15h05

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