magicsmacks
Messages postés128Date d'inscriptionmercredi 21 mai 2003StatutMembreDernière intervention 8 avril 2008
-
26 févr. 2008 à 12:37
magicsmacks
Messages postés128Date d'inscriptionmercredi 21 mai 2003StatutMembreDernière intervention 8 avril 2008
-
27 févr. 2008 à 19:16
Bonjour,
Je désire faire un programme pour traduire un fichier ascii, j'ai donc réalisé ce type de programme mais visiblement j'ai quelques difficultés avec les types de variables.
Initialement je désirais le lire dans un textbox...
Voici mon code sous V Studio 2008:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim Ligne
TextBox1.Clear()
OpenFileDialog1.Filter = "EDF|*.edf"
OpenFileDialog1.InitialDirectory = "C:\Documents and Settings\Bureau"
If OpenFileDialog1.ShowDialog() = DialogResult.OK Then
Dim sr As New System.IO.StreamReader(OpenFileDialog1.FileName)
Dim AE As New System.Text.ASCIIEncoding()
Ligne = sr.ReadToEnd
sr.Close()
Dim CharArray As Char() = AE.GetString(Ligne)
Dim x As Integer
For x = 0 To CharArray.Length - 1
TextBox1.Text = CharArray(x)
Next
Kevin.Ory
Messages postés840Date d'inscriptionmercredi 22 octobre 2003StatutMembreDernière intervention 7 janvier 200911 27 févr. 2008 à 16:30
Re,
Mon message précédent ne répond pas vraiment à ta question, alors voici le code qui affiche le fichier ASCII dans ton TextBox:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim Dlg As New OpenFileDialog
Dlg.Filter = "EDF|*.edf"
Dlg.InitialDirectory = "C:\Documents and Settings\Bureau"
If Dlg.ShowDialog() = DialogResult.OK Then
TextBox1.Clear()
TextBox1.Text = IO.File.ReadAllText("Fichier ASCII.txt", System.Text.Encoding.ASCII)
End If
End Sub
Ton erreur vient probablement de là:
Dim CharArray As Char() = AE.GetString(Ligne)
AE.GetString retourne un string, et non un tableau de char, donc il faut faire:
Dim Text As String = AE.GetString(Ligne)
Et en plus tu ne déclare pas le type de Ligne....
magicsmacks
Messages postés128Date d'inscriptionmercredi 21 mai 2003StatutMembreDernière intervention 8 avril 2008 26 févr. 2008 à 13:57
Effectivement merci...
Le soucis qui persiste serait visiblement qu'il y aurait une incompatibilité entre des variables "string" et "byte"...
Je dois dire que j'ai un peu de mal pour tout piger...
Merci de votre aide
jrivet
Messages postés7393Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 26 févr. 2008 à 17:58
Re,
Ah bah, en regardant un peu mieux le code, je dirais que cela vient de la :
Dim CharArray As Char() = AE.GetString(Ligne).ToCharArray
Si cela ne vient pas de la, il serait utile que tu n'attende pas le X ieme post pour dire sur quelle ligne dans ton code, l'excption se produit. (car normalement, tu doit le savoir).
Kevin.Ory
Messages postés840Date d'inscriptionmercredi 22 octobre 2003StatutMembreDernière intervention 7 janvier 200911 27 févr. 2008 à 05:09
Salut,
Voici 2 solutions pour convertir un fichier ASCII en Unicode:
' 1 : Lire et écrire le fichier texte en spécifiant le codage
Dim MonFichier As String = IO.File.ReadAllText("Fichier ASCII.txt", System.Text.Encoding.ASCII)
IO.File.WriteAllText("Fichier ASCII.txt", MonFichier, System.Text.Encoding.Unicode)
' 2 : Lire le contenu du fichier (en bytes), faire la conversion, réécrire les données dans le fichier
Dim Bytes() As Byte = IO.File.ReadAllBytes("Fichier.txt")
System.Text.Encoding.Convert(System.Text.Encoding.ASCII, System.Text.Encoding.Unicode, Source)
IO.File.WriteAllBytes("Fichier.txt", Bytes)
On peut aussi sans problème faire la conversion entre des strings et des tableaux d'octets de différents codages et vice versa, tout est dans System.Text