Problème de lecture d'accent à partir d'un fichier texte

Résolu
adil18 Messages postés 4 Date d'inscription vendredi 26 juin 2009 Statut Membre Dernière intervention 10 octobre 2011 - 10 oct. 2011 à 14:08
adil18 Messages postés 4 Date d'inscription vendredi 26 juin 2009 Statut Membre Dernière intervention 10 octobre 2011 - 10 oct. 2011 à 22:25
Bonjour,
j'ai fait un petit programme qui permet de lire dans une richtextbox les donnés contenues dans un fichier .dat.
Le soucie que j'ai est que les accents ne s'affichent pas, à la place il y a des caractères spéciaux. J'ai pu voir qu'il y avait de nombreux sujets à ce propos cependant les réponses sont vagues pour une personne de mon niveau, il n' y a pas assez de précision et je ne suis pas assez expérimenter pour les exploitées.

Voici le code qui me permet de lire le contenu du fichier .dat dans la richtextbox

Dim tout, texte As String

tout = ""

Try

FileOpen(1, "C:\data\NouveauDossier" + TextBox1.Text + ".dat", OpenMode.Input)

While Not EOF(1)


texte = LineInput(1)
tout = tout + texte + Chr(13) + Chr(10) 'Chr(13) et Chr(10) servent à revenir à la ligne

End While


RichTextBox2.Text = tout

Catch ex As Exception
Finally
FileClose(1)

End Try


Si quelqu'un pouvais me donner une réponse détaillée pour résoudre ce problème sa serait très gentil

Merci

8 réponses

Utilisateur anonyme
10 oct. 2011 à 20:36
Bonsoir,
Une petite remarque :
Dans ton code, tu n'as utilisé que StreamWriter.
Pourquoi ne pas avoir aussi utilisé son copain StreamReader ?

StreamWriter et StreamReader peuvent accepter plusieurs paramètres notamment le type d'encodage souhaité.

Un petit exemple :
Ici, on utilise l'encodage définit par le système.
Using swStream As New IO.StreamWriter("blabla.txt", False, System.Text.Encoding.Default)
    swStream.WriteLine(Richtextbox1.text)
End Using
'...............

Using srStream As New IO.StreamReader("blabla.txt", System.Text.Encoding.Default)
    Richtextbox1.text = srStream.ReadToEnd
End Using


De plus, StreamReader te permet de te passer des commandes fastidieuses de vb6 qui nécessite de tester la fin d'un fichier (EOF) grâce à sa méthode ReadToEnd.

L'instruction Using elle, se charge de fermer proprement le fichier et libère la ressource utilisée.

Bonne soirée.
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
10 oct. 2011 à 14:12
Bonjour,

1) d'où vient ce fichier .dat ?
2) quelle en est sa taille ?


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
10 oct. 2011 à 14:13
et :
3) pourquoi faire les frais d'une richtextbox alors qu'un fichier .dat n'a pas de mise en forme (une simple textbox suffirait, non ?) ?


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
adil18 Messages postés 4 Date d'inscription vendredi 26 juin 2009 Statut Membre Dernière intervention 10 octobre 2011
10 oct. 2011 à 14:18
C'est un fichier que j'écris à partir d'un formulaire Vb en remplissant des textbox et que j'enregistre dans C:\

c'est un fichier qui contient plusieurs ligne (5 au total) et qui fait 1Ko
Je l'affiche dans une richtextbox pour voir toute les lignes, mais si c'est faisable dans une simple textbox je veux bien changer le code.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
10 oct. 2011 à 14:45
Ah !
C'est un fichier que j'écris à partir d'un formulaire Vb en remplissant des textbox et que j'enregistre dans C:\

- et comment (par quel code) l'écris-tu donc ? Car je ne vois pas de raisons pour qu'il perde ses accents !
- et quand, après l'avoir écrit, tu l'ouvres par le bloc-notes : il les a, ces accents ?
- un si petit fichier peut se lire d'un seul tenant (pas besoin de le lire ligne par ligne).

____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
adil18 Messages postés 4 Date d'inscription vendredi 26 juin 2009 Statut Membre Dernière intervention 10 octobre 2011
10 oct. 2011 à 15:44
Voici la procédure d'enregistrement:

Dim swStream As StreamWriter
Dim strFileName As String
Dim strSavePath As String
Dim dlgReponse As DialogResult
Dim SaveFileDialog1 As New SaveFileDialog

strSavePath = Path.GetDirectoryName("C:\data\NouveauDossier")

With SaveFileDialog1
.AddExtension = True
.CheckPathExists = True
.DefaultExt = ".dat"
.Filter = "Fichiers .dat (*.dat)|*.dat"
.OverwritePrompt = True
.ValidateNames = True
.InitialDirectory = strSavePath
dlgReponse = .ShowDialog()
strFileName = .FileName



End With

swStream = File.CreateText(strFileName)


swStream.WriteLine("Nom de l'échantillon " & " : " & CStr(ech))
swStream.WriteLine("Nom du projet " & " : " & CStr(project))
swStream.WriteLine("Date de création " & " : " & CStr(jour))
swStream.WriteLine("Nombre d'échantillon " & " : " & CStr(nombre))
swStream.WriteLine("Code " & " : " & CStr(TextBox7.Text))


swStream.Close()

Oui quand j'ouvre avec le bloc note les accents sont bien présent, c'est quand je l'ouvre dans le richtextbox qu'il y a des caractères bizarres qui s'affichent à la place des accents
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
10 oct. 2011 à 17:12
Salut

Et pourquoi ne pas utiliser les fonction .LoadFile et .SaveFile du composant RichTextBox ?

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
adil18 Messages postés 4 Date d'inscription vendredi 26 juin 2009 Statut Membre Dernière intervention 10 octobre 2011
10 oct. 2011 à 22:25
Bonsoir,

Merci beaucoup pour votre aide et vos réponses

la solution de banana32 fonctionne super bien et a résolu on problème, j'ai utilisé la fonction System.Text.Encoding.utf8 à la place de System.Text.Encoding.Default et tout est rentré dans l'ordre. Les accents s'affichent.


Merci à tous

Bonne soirée
0
Rejoignez-nous