Bonjour tous le monde, je vais avoir besoin de votre aide une nouvelle fois.
je dois lire des informations dans des fichiers dont je ne connais pas l'encodage. Voici ce que j'obtiens après avoir utilisé le petit bout de code ci-dessous sur 2 fichiers qui sont à peu prés représentatif de ce que l'on peux trouver :
PS : j'ai séparer chaque octet par des virgules pour que vous puissiez lire.
Fichier 1 :
3,0,0,0,1,0,0,0,20,0,0,0,Valeur1,15,0,0,0,Valeur2,4,0,0,0,Valeur3,9,0,0,0,Valeur4,48,48,116,62,..........etc
Fichier 2 :
3,0,0,0,1,0,0,0,7,0,0,0,Valeur1,15,0,0,0,Valeur2,4,0,0,0,Valeur3,9,0,0,0,Valeur4,48,48,213,96,..........etc
On retrouve donc plusieurs fois des séquences d'octets qui ne sont pas forcement toujours les mêmes (Exemple : 20,0,0,0 et 7,0,0,0)
Valeur1 à Valeur4 représente les octets qui m'interressent que je peux lire facilement une fois convertie dans la variable 'result'.
PROBLEME : Je sais déja que je vais avoir à faire des comparaisons de groupes d'octets mais avant tout j'aimerais avoir votre avis pour savoir si il vaux mieux comparer les octets 2 par 2 ou 4 par 4 ? Et ensuite comment stocker dans des constantes des mots de 2 ou 4 octets pour ensuite les comparer ?
D'avance, Merci à vous...
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 Public Sub TraduireFichierBinaire(chemin_fichier As String) ' Vérification de l'entête du fichier Dim buffer_lecture As Byte() = Nothing Dim LectureStream As Stream = File.Open(chemin_fichier, FileMode.Open) Dim LectureStreamReader As New BinaryReader(LectureStream) Try ' lecture des 80 octets de l'entête buffer_lecture = LectureStreamReader.ReadBytes(80) ' Création d'un flux d'écriture Dim Fi As New FileInfo(chemin_fichier) Dim sw As New StreamWriter(Doc_Directory & "\" & Fi.Name & ".txt") ' écriture For Each _Byte As Byte In buffer_lecture sw.WriteLine(CStr(_Byte)) Next sw.Close() Dim Result As String = System.Text.Encoding.UTF8.GetString(CType(buffer_lecture, Byte())) ' Dim Result As String = Convert.ToString(buffer_lecture) Catch generatedExceptionName As IOException End Try LectureStream.Close() LectureStreamReader.Close() End Sub
Partager