Pas d'accent dans une combobox [Résolu]

Signaler
Messages postés
86
Date d'inscription
jeudi 24 octobre 2013
Statut
Membre
Dernière intervention
2 avril 2014
-
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
-
Bonjour,

Je charge une fichier text dans une combobox grace au code ci-dessous :
Dim file As System.IO.File

Dim line As String
Dim reader As System.IO.StreamReader
If Not File.Exists(sPath) Then
Exit Sub
End If
reader = File.OpenText(sPath)
'now loop through each line
While reader.Peek <> -1
line = reader.ReadLine()
oLst.Items.Add(line)
End While

'close your reader
reader.Close()

Je m'aperçois qu'il n'y a jamais les accents : exemple : é
J'ai fait un import.system.text qui ne change rien

J'ai cessayé aussi
Dim reader As new System.IO.StreamReader(spath,encoding.default) sans efrficacité

Une idée ?
merci d'avance

14 réponses

Messages postés
7418
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
15 juin 2021
124
Bonjour,

As-tu les accents dans ton fichier?

J'ai rectifié ton code et j'ai les accents

 Dim line As String
Dim reader As System.IO.StreamReader
If Not IO.File.Exists(sPath)Then
Exit Sub
End If
reader = IO.File.OpenText(sPath)
'now loop through each line
While reader.Peek <> -1
line = reader.ReadLine()
Combobox1.Items.Add(line)
End While

'close your reader
reader.Close()

Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
50
Salut

essaie
 Dim reader As New System.IO.StreamReader(spath, System.Text.Encoding.UTF8)
Messages postés
86
Date d'inscription
jeudi 24 octobre 2013
Statut
Membre
Dernière intervention
2 avril 2014

Bonjour,

Je n'ai pas remplacé oLst.Items.Add(line) par Combobox1.Items.Add(line) car je suis dans une procédure Public Sub LoadComboBox(ByRef oLst As System.Windows.Forms.ComboBox, ByVal sPath As String)

et Dim reader As New System.IO.StreamReader(spath, System.Text.Encoding.UTF8) ne fonctionne pas

...
Messages postés
7418
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
15 juin 2021
124
Essaie ceci

Imports System.IO
Imports System.Text

Public Sub LoadComboBox(ByRef oLst As System.Windows.Forms.ComboBox, ByVal sPath As String)
Dim line As String
Dim reader As StreamReader = New System.IO.StreamReader(sPath, Encoding.Default)
If Not File.Exists(sPath) Then
Exit Sub
End If
reader = File.OpenText(sPath)
'now loop through each line
While reader.Peek <> -1
line = reader.ReadLine()
oLst.Items.Add(line)
End While
'close your reader
reader.Close()
End Sub



Messages postés
86
Date d'inscription
jeudi 24 octobre 2013
Statut
Membre
Dernière intervention
2 avril 2014

sPath, Encoding.Default

J'avais deja essayé
j'ai retenté et cela ne marche tjrs pas
Messages postés
7418
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
15 juin 2021
124
Le lances-tu comme ceci:

   LoadComboBox(ComboBox1,"C:\ chemin \Fichier.txt")
'mettre le nom de ton combo

chez moi cela fonctionne
Messages postés
86
Date d'inscription
jeudi 24 octobre 2013
Statut
Membre
Dernière intervention
2 avril 2014

Public Class frmBou
Inherits System.Windows.Forms.Form

dim chemin as string = application.startuppath & "\Fichier.txt"

... et dans frm load

LoadComboBox(cmb1, chemin)
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
50
peut etre ainsi

j'ai testé avec un fichier txt contenant des accents pas de problème
ComboBox1.Items.Clear()
ComboBox1.Items.AddRange(System.IO.File.ReadAllLines(Application.StartupPath & "\Fichier.txt"))

aussi ton premier code fonctionne chez moi
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
237
Je pense que la première question devrait être celle-ci :
Qu'affiche l'ouverture, par le bloc-notes, depuis la machine abritant cette application, du fichier texte considéré ?
Messages postés
86
Date d'inscription
jeudi 24 octobre 2013
Statut
Membre
Dernière intervention
2 avril 2014

hELLO,

J'ai trouvé d'où vient l'erreur !

En VB6 j'enregistré les combobox sous la forme d'un fichier "fichier.lst"

En vbnet j'enregistre sous la forme "fichier.txt"

J'ai donc ouvert avec le bloc note mon fichier "fichier.lst" que j'ai enregistré sous la forme "fichier.txt" avant de pouvoir utiliser mon fichier précédent. Et effectivement je n'arrive pas à lire les accents.

Comment donc faire pour récupérer ce fichier.lst et arriver à le faire lire ?
Messages postés
86
Date d'inscription
jeudi 24 octobre 2013
Statut
Membre
Dernière intervention
2 avril 2014

Résolu !
J'ai ouvert option d'enregistrement avancé, j'ai choisi unicode UTF8 sans signature pour l'enregistrement du fichier !
Messages postés
86
Date d'inscription
jeudi 24 octobre 2013
Statut
Membre
Dernière intervention
2 avril 2014

Si j'ai 100 dossiers dans lesquels j'ai des fichiers .lst et que je desire pourvoir les charger dans les combobox et les visualiser avec les accents, comment feriez-vous ?

Car je ne souhaite pas ouvrir les 100 dossiers pour enregistrer chaque fichier .lst en UTF8 !
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
50
Pose la question dans un nouveau post
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
50
pas clair

Tu as dit que tu as ouvert ton fichier.lst avec le blocknote
Et effectivement je n'arrive pas à lire les accents.
ensuite tu as du corrigé le text en remettant les accents et
sauvegardé avec format utf8

maintenant tu as 100 fichiers à corriger
tu seras obligé de les corriger car aucun code ne pourra remettre
les accents
le format utf8 ne corrige pas ton texte mais permet de sauvegarder le texte en conservant les accents