ForumCommunity

[VB.NET]Funzione SearchBytes

« Older   Newer »
  Share  
lucameloni91
view post Posted on 26/11/2007, 15:04




Ragazzi, per il mio ultimo programma, ovvero il 3G Firmware Modder v2.0, ho sviluppato la seguente funzione, posto il codice e vi spiego cosa fa:
CODICE
Function SearchBytes(ByVal bdc() As Byte, ByVal bic() As Byte) As Integer
       Try
           Dim c As Integer
           For i As Integer = 0 To bic.Length - 1
               c = 0
               If bic(i) = bdc(0) Then
                   For j As Integer = 0 To bdc.Length - 1
                       If bic(i + j) = bdc(j) Then
                           c += 1
                       End If
                   Next
               Else
                   Continue For
               End If
               If c = bdc.Length Then
                   Return i
               Else
                   Continue For
               End If
           Next
           Return -1
       Catch ex As Exception
           Return -1
       End Try
   End Function

Allora, a questa funzione vanno date in pasto due variabili, bdc() è l'array di byte da cercare nella seconda variabile, mentre bic() appunto è l'array di byte in cui cercare la prima variabile :) Se la funzione trova il primo array all'interno del secondo, ritorna l'indice al quale è stato trovato, altrimenti se non viene trovato ritorna il valore -1 :) Vi faccio un esempio:
CODICE
Dim bdc1() As Byte = {Val("&H00"), Val("&H01"), Val("&H02")}
   Dim bdc2() As Byte = {Val("&H01"), Val("&H02"), Val("&H03")}
   Dim bic() As Byte = {Val("&HFF"), Val("&H00"), Val("&H01"), Val("&H02"), Val("&HFF")}
   SearchBytes(bdc1, bic) 'In questo caso la funzione ritornerà il valore 1 poichè ha trovato una corrispondenza all'indice 1 fra l'array bdc1() e l'array bic()
   SearchBytes(bdc2, bic) 'In questo caso la funzione ritornerà il valore -1 poichè non troverà alcuna corrispondenza fra l'array bdc2() e l'array bic()

Spero sia chiaro e utile :)

Edited by lucameloni91 - 26/11/2007, 19:49
 
Top
Andre_FLEX
view post Posted on 26/11/2007, 18:57




grazie luca!
 
Top
1 replies since 26/11/2007, 15:04   81 views
  Share