Recherche dans un fichier ou tableau de bytes :

Description

Une simple fonction tres simple, permettant de chercher dans un tableau de byte (et donc un fichier si on
l'ouvre avec la fonction Read d'un io.binaryreader) un autres tableau de byte.
Ce qui nous permet donc de faire des recherche de string qu'on convertira en tableau de byte.
Ecrit apres pas mal de probleme de recherche en passant par des strings pour GBATOols, je me suis dit que cela
pourrait interesser certains...meme si sur un fichier enorme type divx on en a pour quelques temps!
Mais je l'utilise sur des fichiers entre 4 et 32Mo et les resultats sont plus que corrects.
j'ai mis un projet d'exemple permettant de cherche une string ou une valeur hexadecimal (sous la forme FF00FF00FF00 ... sans espaces) dans un fichier.
Toute optimisation est la bienvenue.

Source / Exemple :


'voir le zip pour l'utilisation de la fonction pour une recherche dans un fichier

 Public Function search_arr_in_arr_all_instances(ByVal arr1() As Byte, ByVal arr2() As Byte) As Integer()
        Dim resultz(0) As Integer
        Dim a As Integer
        Dim b As Integer
        Dim c As Integer
        Dim nb As Boolean
        Dim d As Integer = arr2.Length - 1
        c = arr1.Length - arr2.Length
        For a = 0 To c
            If arr1(a) = arr2(0) Then
                nb = True
                For b = 0 To d
                    If arr1(a + b) <> arr2(b) Then
                        nb = False
                        Exit For
                    End If
                Next
                If nb = True Then
                    resultz(resultz.GetUpperBound(0)) = a
                    ReDim Preserve resultz(resultz.GetUpperBound(0) + 1)
                End If
            End If
        Next
        Return resultz

    End Function

Conclusion :


Commentaires?

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.