Bonjour à tous
J'ai besoin de lire caractère par caractère un fichier NotePad qui contient des mots séparés par une virgule suivi d'un espace pour les enregistrer dans un second fichier, séparés par un "CRLF".
N'étant pas un expert en la matière, j'ai essayé de trouver quelques exemples.
Mon code fonctionne jusqu'à trouver un caractère accentué.
Voici le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
 
Imports System
Imports System.IO
Imports System.Text
 
Module Module1
    Public chemin, ficOrigine, ficDestination, Mot As String
    Public Car As Byte
 
 
    Public Sub Main()
        Dim i, longueur As Integer
        chemin = CurDir()     'Application.StartupPath
        ficOrigine = chemin & "\Quelques mots.txt" 'Ce fichier a été créé avec NotePad
        ficDestination = chemin & "\Résultat.txt"
        longueur = FileLen(ficOrigine)
        Dim sw As StreamWriter = New StreamWriter(ficDestination)
        Dim MyFile As New FileInfo(ficOrigine)
        Dim sr As StreamReader = MyFile.OpenText()
        'Read a single character.
        Try
            For i = 1 To longueur
                Car = sr.Read() 'Là où se trouve l'erreur quand on essaye de lire un "é"
                If Car <> 32 Then
                    If Car = 44 Then
                        sw.WriteLine(Mot)
                        Mot = ""
                    Else
                        ConstituerMot(Car)
                    End If
                End If
            Next
        Catch ex As Exception
            MsgBox(ex.Message) 'Le message est le suivant "Arithmetic operation resulted in an overflow"
        End Try
 
        sr.Close()
        sw.Close()
    End Sub
 
    Private Sub ConstituerMot(ByVal x)
        Mot += Chr(Car)
    End Sub
 
End Module
Je pense que codage UTF... est peut être mal réglé mais je n'ai pas bien compris comment le coder

Merci de votre réponse
Claude Azoulai