Compter le nombre hexadecimale [Résolu]

hacker591 31 Messages postés mardi 10 juin 2014Date d'inscription 14 août 2017 Dernière intervention - 4 déc. 2015 à 19:54 - Dernière réponse : ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention
- 6 déc. 2015 à 13:51
Bonjour,
voici en image :


Voici mon code :
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,
Afficher la suite 

Votre réponse

13 réponses

vb95 1568 Messages postés samedi 11 janvier 2014Date d'inscriptionContributeurStatut 21 mai 2018 Dernière intervention - Modifié par vb95 le 5/12/2015 à 00:21
+1
Utile
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. 
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de vb95
Whismeril 11541 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 22 mai 2018 Dernière intervention - 4 déc. 2015 à 20:32
0
Utile
Bonsoir qu'est que tu veux dire par compter?
Commenter la réponse de Whismeril
0
Utile
Bonsoir,

compter le nombre hexadécimale :
exemple: 000780F4 = 1 ,000780F5 = 2 , 0006E00A = 3 .....etc et il s'arret quand il y a en hex (0006FEC3).
Commenter la réponse de hacker591
Whismeril 11541 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 22 mai 2018 Dernière intervention - 4 déc. 2015 à 20:46
0
Utile
Convertir alors.
Whismeril 11541 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 22 mai 2018 Dernière intervention - 4 déc. 2015 à 20:47
ha non 06E00F ça ne fait pas 1.
Commenter la réponse de Whismeril
Whismeril 11541 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 22 mai 2018 Dernière intervention - 4 déc. 2015 à 20:50
0
Utile
Dans ta boucle Do...Loop, tu incréments un compteur.
Commenter la réponse de Whismeril
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - 4 déc. 2015 à 20:53
0
Utile
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.
Commenter la réponse de ucfoutu
0
Utile
Bonjour,

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()
Commenter la réponse de hacker591
Whismeril 11541 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 22 mai 2018 Dernière intervention - 5 déc. 2015 à 07:29
0
Utile
Bonjour, puisque tu as trouvé la réponse, tu peux passer le sujet résolu.
Commenter la réponse de Whismeril
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - 6 déc. 2015 à 07:31
0
Utile
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.
Whismeril 11541 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 22 mai 2018 Dernière intervention - 6 déc. 2015 à 08:33
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.

Avec le peu d'infos fournie c'est ce que j'en avais déduis, là
http://codes-sources.commentcamarche.net/forum/affich-10057402-compter-le-nombre-hexadecimale#5
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - 6 déc. 2015 à 09:58
Bonjour, Whismeril,
Je crois qu'il ne veut pas compter les paquets de 0
Commenter la réponse de ucfoutu
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - 6 déc. 2015 à 13:51
0
Utile
Tiens ...
Le hasard a voulu que je "tombe" à l'instant sur ceci :
http://www.developpez.net/forums/d1556951/dotnet/langages/vb-net/lire-superieur-0-a/
Qui montre au passage comment hacker591 joue au ping-pong entre deux sites pour faire avancer son schmilblick ...
Commenter la réponse de ucfoutu

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.