Try
Dim fs As New FileStream(FilePath, IO.FileMode.Open, IO.FileAccess.ReadWrite, IO.FileShare.ReadWrite)
Dim reader As New BinaryReader(fs)
reader.BaseStream.Position = &H85F4
Do
hexnomber = BitConverter.ToString(reader.ReadBytes(4), 0, 4).Replace("-", "")
If hexnomber = "0006FEC3" Then Exit Do
reader.BaseStream.Position += 4
Label2.Text = hexnomber.Length - 7
Loop
fs.Close()
reader.Close()
Catch exception1 As Exception
ProjectData.SetProjectError(exception1)
Dim exception As Exception = exception1
Interaction.MsgBox(Conversion.ErrorToString, MsgBoxStyle.ApplicationModal, Nothing)
ProjectData.ClearProjectError()
End Try
End Sub
Par rapport a mon code comment compte de nombre hexadécimale(voir image)?
Merci de votre compréhension,
Bonjour
Je pense que notre ami désire compter le nombre de blocs de 4 octets à partir d'un offset déterminé par lui sans compter les blocs de 4 octets à "00000000" et arrêter le comptage à une valeur bien précise pour ce bloc de 4 octets
Dim fs As New FileStream(Filepath, IO.FileMode.Open, IO.FileAccess.ReadWrite, IO.FileShare.ReadWrite) Dim reader As New BinaryReader(fs) Dim pointeur As Integer = convert.toint32("85F4",16) ' départ position comptage Dim compteur As Integer = 0 Dim chn As String Do reader.BaseStream.Position = pointeur chn = BitConverter.ToString(reader.ReadBytes(4), 0, 4).Replace("-", "") If chn = "3234372C" Then Exit Do compteur = compteur + 1 pointeur = pointeur + 8 Loop fs.Close() reader.Close()
En sortie compteur contient la valeur que tu attends . Dans ton cas il devrait contenir 7
La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.
Bonjour,
Demande peu claire. Compter et totaliser sont deux choses différentes.
Que veux-tu exactement compter, hacker591 ?
Sois précis, s'il te plait.
Merci vb95 pour votre réponse mais gras à toi. j'ai trouver la solution a mon problème.
Dim fs As New FileStream(FilePath, IO.FileMode.Open, IO.FileAccess.ReadWrite, IO.FileShare.ReadWrite)
Dim reader As New BinaryReader(fs)
reader.BaseStream.Position = &H95FC
Dim compter As Integer = 0
Do
hexnomber = BitConverter.ToString(reader.ReadBytes(4), 0, 4).Replace("-", "")
If hexnomber = "7FFFFFFF" Then Exit Do
reader.BaseStream.Position += 4
compter = compter + 1
Label2.Text = compter
Loop
fs.Close()
reader.Close()
Résolu ... résolu ... je veux bien,
Mais je serais fort étonné que le code qu'il a montré lui ait permis de compter ce qu'il veut compter .
Mais bon ... Il a mis RESOLU.
Bonjour UC, en gros il compte le nombre de paquet de 8 octets (quelque soit leur valeur) à partir d'une position et jusqu'à trouver un mot de 4 octets de fin.