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

VB.NET Discussion :

Problème accents non reconnus lors de lecture fichier texte delimités par des virgules.


Sujet :

VB.NET

  1. #1
    Futur Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 13
    Points : 6
    Points
    6
    Par défaut Problème accents non reconnus lors de lecture fichier texte delimités par des virgules.
    Bonjour,

    voici mon problème,lors de la lecture d'un fichier texte délimité par des virgules qui est sous cette forme :

    100,001,00.0.0 ,texte 1 ,
    101,002,00.0.1 ,texte 2 ,
    112,003,14.0.1 ,Bâti : A ,
    105,004,19.1.1 ,Bâti : B ,
    106,005,19.1.2 ,Bâti : C ,

    ma variable "ligne" ne comprends pas les caractères accentués et Bâti devient B#ti (le # etant en fait un carré à l'ecran)...

    voici mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
     ' Définition du type de champs et du délimiteur
                MyReader.TextFieldType = FileIO.FieldType.Delimited
                MyReader.SetDelimiters(",")
                'MyReader.FieldWidths.
     
     
                ' Lecture des données et affichage
                a = 0
                DataGridView1.ColumnCount = 5
                While Not MyReader.EndOfData
                    Try
                        ligne = MyReader.ReadFields
                        i = 0
                        Dim champ As String
                        For Each champ In ligne
                            i = i + 1
                            s(i) = champ
                            If i = 5 Then
                                a = a + 1
                                ReDim Preserve Tab1(a)
                                ReDim Preserve Tab2(a)
                                ReDim Preserve Tab3(a)
                                ReDim Preserve Tab4(a)
                                Tab1(a) = s(1)
                                Tab2(a) = s(2)
                                Tab3(a) = s(3)
                                Tab4(a) = s(4)
                            End If
                        Next
                        DataGridView1.Rows.Add(New String() {s(1), s(2), s(3), s(4), s(5)})
     
                    Catch ex As Microsoft.VisualBasic.FileIO.MalformedLineException
                        MsgBox("L'enregistrement " & ex.Message & _
                        "n'est pas valide. Il a été ignoré.")
                    End Try
                End While
            End Using

    pourriez vous me dire ou je me suis trompé?

    Merci d'avance

    Cordialement

    Maverick

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    299
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 299
    Points : 330
    Points
    330
    Par défaut
    Bonjour,
    C'est sans doute un problème d'encoding (system.encoding).
    Tu peux spécifier le format d'encodage du fichier que tu lis.
    A voir dans ta définition de MyReader.

  3. #3
    Futur Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 13
    Points : 6
    Points
    6
    Par défaut Merci!
    Un grand merci Nikoko34, grâce à toi, j'ai pu trouver la réponse :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Using MyReader As New Microsoft.VisualBasic.FileIO.TextFieldParser(My.Resources.CheminFichier & "data.txt", System.Text.Encoding.Default)
    j'ai testé, cela fonctionne.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 28
    Points : 35
    Points
    35
    Par défaut
    Salut!

    Nickel, merci pour la méthode .

    Bye.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Batch] Lire un fichier texte séparer par des tab
    Par Mut dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 16/05/2013, 16h41
  2. Lecture fichier texte ligne par ligne
    Par LinuxUser dans le forum C++
    Réponses: 7
    Dernier message: 14/01/2013, 15h27
  3. Réponses: 2
    Dernier message: 26/04/2011, 19h23
  4. Réponses: 9
    Dernier message: 11/09/2007, 23h47
  5. [VB.NET] lecture fichier texte et détection des mots
    Par zouhib dans le forum Windows Forms
    Réponses: 25
    Dernier message: 01/06/2006, 09h12

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