Caractere spéciaux dans listbox [Résolu]

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

Il y a des fois vbnet ...
VB6 etait tellement plus simple !

Bon cette fois j'ai un probleme d'affichage dans ma listbox.
Les accents se transforment en caracteres bizarroides.

Si je charge un fichier avec accent dans ma listbox -->pas de probleme
Par contre si j'ai le malheur de renommer ce même fichier et qu'il a un accent --> le caractere bizarroide apparait

Pour renommer j'utilise le code ci-dessous :
My.Computer.FileSystem.RenameFile(Chemin & "\" & Listbox1.SelectedItem & ".txt",  
nouveauNom & ".txt")



Une idée ?
Merci à vous

7 réponses

Messages postés
14419
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
31 mars 2020
365
Correction de la coloration syntaxique. Pour plus de lisiblité pense à spécifier le langage avec la liste déroulante (flèche vers le bas) à côté de <>. Détails ici.
Messages postés
14419
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
31 mars 2020
365
Bonjour, ou apparaît le caractère bizarre, dans la liste box ou dans le nom du fichier?
Messages postés
86
Date d'inscription
jeudi 24 octobre 2013
Statut
Membre
Dernière intervention
2 avril 2014

bonjour,

dans la listbox et le fichier localisé dans le dossier
Messages postés
14419
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
31 mars 2020
365
OK, peux tu poster le code avec lequel tu charges la listbox, et celui de la mise à jour après renommage.

Penser aux balises de coloration syntaxique: bouton <>, préciser le langage :<code csharp>.
Quand la solution est trouvée, mettre la discussion Résolue.
Messages postés
86
Date d'inscription
jeudi 24 octobre 2013
Statut
Membre
Dernière intervention
2 avril 2014

Au lancement de l'exe, chargement des noms des fichiers text (nom.txt) dans la listbox grace à une procédure :


private sub MiseAjour
Listbox1.Items.Clear()
Dim sFiles() As String
Dim nbfiles As Integer
Dim i As Integer
sFiles = Directory.GetFiles(Chemin)
nbfiles = Directory.GetFiles(Chemin).Length()
For i = 0 To nbfiles - 1
Dim pathfile As String = sFiles(i)
Dim NomFichier As String = pathfile.Remove(0, InStrRev(pathfile, "\", -1))
Dim x As Integer = NomFichier.Length - 4
Dim fichier As String = NomFichier.Remove(x, 4)
Listbox1.Items.Add(fichier)
Next

Ensuite je renomme le fichier text : je l'ouvre, je recupere des lignes, qui je m'en serrs pour renomme rle fichier :

Dim Chaine As String
Dim Ar(15) As String
Dim ligne As String
Dim i As Integer
Dim selection As String
selection = Listbox1.SelectedItem

Dim sr As New StreamReader(Chemin & "\" & selection & ".txt")

'Do Until sr.Peek = -1
i = 1
Do Until i = 15
ligne = sr.ReadLine()
Ar(i) = ligne
i = i + 1
Loop
sr.Close()
bo = UCase(Ar(2))
bi = StrConv(Ar(3), vbProperCase)
bu = Ar(7)

Je renomme ensuite le fichier

My.Computer.FileSystem.RenameFile(Chemin & "\" & Listbox1.SelectedItem & ".txt",
bo & " " & bi & " " & bu & ".txt")

Puis je relance la procédure MiseAjour
Messages postés
14419
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
31 mars 2020
365
Bonjour,

quand tu utilise les balises de codes, merci de bien seclectionner le langage, comme je te l'ai déjà demandé plus haut.

Ceci fonctionne chez moi
        My.Computer.FileSystem.RenameFile("C:\test.txt", "éèàôï.txt")

Si tu mets un point d'arrêt que valent bo, bi et bu?

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

bonsoir,

j'ai trouvé la solution de cette manière.
Le problème vient de la lecture du fichier texte, qui reconnait pas certains caracteres. J'ai rajouté " System.Text.Encoding.Default" et le tour est joué !

Dim sr As New StreamReader(CheminHprim & "\" & selection & ".txt", System.Text.Encoding.Default)