Modulo 10 récursif pour vb et cr

Soyez le premier à donner votre avis sur cette source.

Snippet vu 15 560 fois - Téléchargée 25 fois

Contenu du snippet

Bonjour ...

Pour cette petite source je n'ai rien inventé, mais je cherchais une source permettant le calcul d'un chiffre clef d'après le modulo 10 récursif que je n'ai pas trouvée sur ce site et c'est alors que j'ai pensé que cela pouvait rendre service à d'autres dans mon cas (je pense surtout aux petits suisses qui veulent imprimer des BVR ou BVR+ avec leur propre numéro de référence..... je ne sait pas si le système est le même dans d'autre pays...) ;)

J'ai aussi mis la version que j'ai adapté pour Crystal Report afin de pouvoir calculer mon chiffre clef de manière autonome au moment de l'impression.

Source / Exemple :


// version VB

Function Modulo10(ByVal StrNbre As String) As Integer

Dim modTable(0 To 9) As Integer
Dim modReport As Integer
Dim modSerie As Integer
    
    modTable(0) = 0: modTable(1) = 9
    modTable(2) = 4: modTable(3) = 6
    modTable(4) = 8: modTable(5) = 2
    modTable(6) = 7: modTable(7) = 1
    modTable(8) = 3: modTable(9) = 5
    
    For modSerie = 1 To Len(StrNbre)
        modReport = modTable((modReport + Mid(StrNbre, modSerie, 1)) Mod 10)
    Next
    
    Modulo10 = (10 - modReport) Mod 10
    
    
End Function

//Version Crystal Report (edition de fonction en "Basic Syntax")

Function modulo10 (StrNbre as string) as number

Dim modTable() As number
modTable = array (1,2,3,4,5,6,7,8,9,10)
Dim modReport As number
Dim modSerie As number
Dim Nbretemp as number
    
    modTable(1) = 0: modTable(2) = 9
    modTable(3) = 4: modTable(4) = 6
    modTable(5) = 8: modTable(6) = 2
    modTable(7) = 7: modTable(8) = 1
    modTable(9) = 3: modTable(10) = 5
    
    For modSerie = 1 To Len(StrNbre)
        Nbretemp = tonumber(Mid(StrNbre, modSerie, 1))
        modReport = modTable(((modReport + Nbretemp) Mod 10)+1)
    Next
    
    Modulo10 = (10 - modReport) Mod 10
End Function

Conclusion :


voila, c'est tout... à part un grand merci à hosang pour le code original :)

http://www.hosang.ch/modulo10.htm

et pour ceux qui veulent comprendre le fonctionnement (page 3):

http://www.postfinance.ch/medialib/fr/pf/globale_mediendateien/service/handbuecher.Par.0019.File.tmp/hb_records_fr.pdf

A voir également

Ajouter un commentaire

Commentaire

Nickel, merci pour l'astuce.. ca me facilite la vie :-) Il ne me reste plus qu'à tenter de la réécrire en SQL

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.