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 :
Je pense que codage UTF... est peut être mal réglé mais je n'ai pas bien compris comment le coder
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
Merci de votre réponse
Claude Azoulai
Partager