lucameloni91 |
|
| 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
|
| |