Determine le CHECKSUM d'un fichier

Résolu
cs_SEB73460 Messages postés 271 Date d'inscription vendredi 15 avril 2005 Statut Membre Dernière intervention 29 novembre 2022 - 2 déc. 2007 à 10:23
cs_SEB73460 Messages postés 271 Date d'inscription vendredi 15 avril 2005 Statut Membre Dernière intervention 29 novembre 2022 - 2 déc. 2007 à 15:33
Bonjour,

En vb.net

J'ouvre un fichier dans un label qui comporte plusieurs octets
j'aimerai determiner le cheksum-32

A savoir : AABBCC = 231hex

Comment faire cela avec du code ?

Merci pour votre aide

9 réponses

jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
2 déc. 2007 à 11:51
Si tes valeurs hexa dans ta chaîne n'ont pas toujours la même longueur ou que, ayant des longueur différentes, ces valeurs ne sont pas séparées l'une de l'autre par un séparateur, il te sera toujours impossible de savoir où commence et où se termine une valeur hexa dans ta chaîne...

Si maintenant tu veux éclater ta chaine en, valeur ascii de chacun des caractères qu'elle contient (tu en feras ensuite ce que tu voudras, ma foi), voilà une méthode rapide (éclatement en array de bytes) :

Private Sub Command1_Click()
    toto = "AABBCC"
    Dim titi() As Byte
    titi() = StrConv(toto, vbFromUnicode)
    For i = 0 To UBound(titi)
        MsgBox titi(i)
    Next
End Sub
3
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
2 déc. 2007 à 11:02
Bonjour,

2 questions :

1) quel est ton mécanuisme de CheckSum (on dirait qu'il ne correspond pas au mien) pour arriver à 231hex à partir de AABBCC

2) quel est l'origine de ton fichier (écrit ou non en Unicode ?)
0
cs_SEB73460 Messages postés 271 Date d'inscription vendredi 15 avril 2005 Statut Membre Dernière intervention 29 novembre 2022
2 déc. 2007 à 11:05
Salut,

le mecanisme de mon Checksum est l'addition des octets de mon fichier
et l'origine c'est un fichier Hexadecimal que j'ouvre dans un label
Merci pour ton aide
A+
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
2 déc. 2007 à 11:16
Je ne comprends toujours pas !

Qu'entends-tu par "addition des octets" :
- leur nombre ?
- le total de leurs valeurs Ascii ?
- le total de leurs valeurs Hexas ?

Considères-tu enfin le contenu de ton fichier comme chaîne de caractère ?

tout celà reste encore flou !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
2 déc. 2007 à 11:18
Exemple :


 


Chaine de caractères "AB"


 


décompose ici et en langage naturel (français) ce que tu calcules


A ==>>> ?


B ===>> ?


et que fais-tu de ces 2 résultats ?
0
cs_SEB73460 Messages postés 271 Date d'inscription vendredi 15 avril 2005 Statut Membre Dernière intervention 29 novembre 2022
2 déc. 2007 à 11:29
Je ne souhaite pas obtenir une chaine de caracteres
mais le total de leurs valeurs en Hexadecimal
que j'affiche dans un label
Donc la somme des octets de mon fichier "AA+BB+CC = 231 (En hexa)"

Merci et a +
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
2 déc. 2007 à 11:36
MsgBox Hex(Val("&HAA") + Val("&HBB") + Val("&HCC"))

Mais tu ne pourras utiliser celà que si tes valeurs hexas (dans ta chaîne) ont toujours la même longueur !
0
cs_SEB73460 Messages postés 271 Date d'inscription vendredi 15 avril 2005 Statut Membre Dernière intervention 29 novembre 2022
2 déc. 2007 à 11:43
Merci pour ta reponse mais les octets de mes fichiers ne sont jamais identiquent
et ils n'ont jamais la meme longeur

Moi de mon niveau de debutan, je pensais faire :

lire le premier octet et le stocker dans une variable
ensuite lire le deuxieme octet et l'additionner dans la variable
lire le troisieme octet et etc.........
jusqu'a la fin de mon fichier
et ensuite lire ma variable en Hexa et l'afficher dans mon label

Mais je debute et je vois peu etre cela trop simplement

A+
0
cs_SEB73460 Messages postés 271 Date d'inscription vendredi 15 avril 2005 Statut Membre Dernière intervention 29 novembre 2022
2 déc. 2007 à 15:33
J'ai recuperer un bout de code sur le forum
je pense qu'il repond à mon attente (A voir)

decod = HexCrypt(octetligne) 'on le convertit en hexa
cheksum = cheksum + Val("&H" & decod)

Merci à tous pour vos reponses
0
Rejoignez-nous