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 ?

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
D'avance, Merci à vous...