English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
Toutes les catégories

Bonjour, je cherche quels sont les grands classiques des algorithme de checksum (genre algo. de Luhn). Merci.

2006-11-03 07:43:37 · 1 réponses · demandé par divers789 2 dans Informatique et internet Programmation

1 réponses

la clé de luhn consiste à doubler un chiffre sur deux puis additionner tous les chiffres. la clé est bonne si le total est multiple de 10

voici une fonction en VBA pour la calculer :

Public Function LuhnCle(ByVal Src As String)
Dim i As Byte
Dim c As Byte
Dim Tot1, Tot1C, Tot2

Tot1 = 0
For i = 1 To Len(Src)
c = Val(Mid$(Src, i, 1))
If (i Mod 2) = 1 Then c = c + c
If c > 9 Then c = c - 9
Tot1 = Tot1 + c
Next i
Tot1C = "" & Tot1
Tot2 = 0
For i = 1 To Len(Tot1C)
c = Val(Mid$(Tot1C, i, 1))
Tot2 = Tot2 + c
Next i
LuhnCle = (Tot2 * 10 - Tot1) Mod 10
End Function

sinon, il y a le crc des codes barres :

Public Function BarCodCalcCrc(ByVal Value As String) As String
Dim Sum As Long
Dim i As Long
' On ajoute tous les chiffres du code multipliés par un coef qui alterne entre 1 et 3
' Le dernier est toujours un 3 c'est pourquoi on commence par la fin
Sum = 0
For i = 1 To Len(Value)
Sum = Sum + Val(Mid$(Value, Len(Value) - i + 1, 1)) * ((i Mod 2) * 2 + 1)
Next i
BarCodCalcCrc = "" & (1000000000 - Sum) Mod 10
End Function

ces algos sont dépassés aujourd'hui, les codes actuels sont capables non seulement de détecter les erreurs mais aussi de les corriger comme sur les DVD...

2006-11-03 08:29:58 · answer #1 · answered by Ramis V 7 · 1 0

fedest.com, questions and answers