Problème de lecture d'accent à partir d'un fichier texte [Résolu]

adil18 4 Messages postés vendredi 26 juin 2009Date d'inscription 10 octobre 2011 Dernière intervention - 10 oct. 2011 à 14:08 - Dernière réponse : adil18 4 Messages postés vendredi 26 juin 2009Date d'inscription 10 octobre 2011 Dernière intervention
- 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
Afficher la suite 

8 réponses

Répondre au sujet
Utilisateur anonyme - 10 oct. 2011 à 20:36
+3
Utile
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.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Utilisateur anonyme
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 10 oct. 2011 à 14:12
0
Utile
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
Commenter la réponse de ucfoutu
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 10 oct. 2011 à 14:13
0
Utile
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
Commenter la réponse de ucfoutu
adil18 4 Messages postés vendredi 26 juin 2009Date d'inscription 10 octobre 2011 Dernière intervention - 10 oct. 2011 à 14:18
0
Utile
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.
Commenter la réponse de adil18
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 10 oct. 2011 à 14:45
0
Utile
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
Commenter la réponse de ucfoutu
adil18 4 Messages postés vendredi 26 juin 2009Date d'inscription 10 octobre 2011 Dernière intervention - 10 oct. 2011 à 15:44
0
Utile
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
Commenter la réponse de adil18
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 10 oct. 2011 à 17:12
0
Utile
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)
Commenter la réponse de cs_Jack
adil18 4 Messages postés vendredi 26 juin 2009Date d'inscription 10 octobre 2011 Dernière intervention - 10 oct. 2011 à 22:25
0
Utile
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
Commenter la réponse de adil18

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.