Bonjour à tous,
Je fais appel à vos connaissances pour traduire un programme en langage C vers du vba.
Certaines fonctions de ce programme me sont inconnues et je peine à le faire fonctionner sous Access.
Le principe est de calculer sur 18 caractères, le crc 8 bits polynôme 0x91, en base 10 (0 -> 255 => 3 chiffres).
Exemple : 300314120242907650 résultat du calcul 048
Voici le code en C:
En vba cela pourrait donner cela :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 const unsigned char CRC7_POLY = 0x91; unsigned char getCRC(unsigned char message[], unsigned char length) { unsigned char i, j, crc = 0; for (i = 0;i < length; i++) { crc ^= message[i]; for (j = 0;j < 8; j++) { if (crc & 1)crc ^= CRC7_POLY; crc >>= 1; } } return crc; }
Je n'arrive pas à traduire la partie en italique. Pouvez-vous m'apporter une aide sur ce sujet ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 Function CRC (Message as String, Longueur_a_coder as long) Dim i,j as Long CRC=0 For i=1 to Longueur_a_coder CRC=CRC xor Message(i) For j=1 to 8 if le bit de poids faible de CRC est à 1 then CRC=CRC xor 0x91 ou exclusif bit à bit Décaler les bits de CRC de 1 bit à droite // division entière par 2 end if Next j Next i CRC=CRC
Merci.
Partager