Recherche dans un fichier ou tableau de bytes :

Soyez le premier à donner votre avis sur cette source.

Vue 8 543 fois - Téléchargée 365 fois

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

Ajouter un commentaire

Commentaires

hvb
Messages postés
939
Date d'inscription
vendredi 25 octobre 2002
Statut
Membre
Dernière intervention
27 janvier 2009
1 -
j'ai jamais analysé la structure d'un fichier zip mais il me semble que EbartSoft avait posté une source qui le fesait (entre autre) ... regarde la liste de ses sources, tu trouvera peut etre ton bonheur.
cs_AbriBus
Messages postés
492
Date d'inscription
jeudi 28 août 2003
Statut
Membre
Dernière intervention
25 avril 2007
5 -
question subsidiere: peux tu utiliser ce proceder pour connaitre combien de fichiers contient un zip par exemple...? (il y a peut etre une sorte de 'header' dans les zip... je sais pas je suis completement novice en la matiere)
hvb
Messages postés
939
Date d'inscription
vendredi 25 octobre 2002
Statut
Membre
Dernière intervention
27 janvier 2009
1 -
c'est clair que ça demande bcp de ressources, comme je le disait plus haut, meme sur mon p4 2.8Ghz avec 1024 de ram... faut eviter d'ouvrir un fichier de 700Mo.
Mais comme cela ma été utile, j'espere que ça peut l'être a d'autres.
Et je me repete, "Toute optimisation est la bienvenue". ^^
cs_AbriBus
Messages postés
492
Date d'inscription
jeudi 28 août 2003
Statut
Membre
Dernière intervention
25 avril 2007
5 -
ok, bien joué... ca peut toujours etre utile mais a bien y regarder, t'as pas vraiment interret a lancer le truc sur un 486 MMX lol... ;-)

Bonne prog...

Que la Prog soit avec toi...

Bubus...
hvb
Messages postés
939
Date d'inscription
vendredi 25 octobre 2002
Statut
Membre
Dernière intervention
27 janvier 2009
1 -
cela sert à rechercher n'importe quel type de valeur dans un fichier... j'en avait besoin pour la recherche d'une suite d'octets specifique dans un fichier pour trouver l'endroit où le patcher.

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.