VERIFICATEUR CB

Signaler
Messages postés
2671
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
-
Messages postés
10
Date d'inscription
mercredi 26 mars 2003
Statut
Membre
Dernière intervention
16 juin 2007
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/2979-verificateur-cb

Messages postés
10
Date d'inscription
mercredi 26 mars 2003
Statut
Membre
Dernière intervention
16 juin 2007

Salut la mouche.

Ton idée est sympa mais bon.... Faut quand même pas exagérer...

Numéro, c'est masculin. Et bancaire ne s'écrit pas avec un Q. Il y a en tout et pour tout 7 mots en français dans ton code, et tu as fait 3 fautes... Même si on n'est pas à l'école, on n'est pas non plus des demeurés !

Merci d'avance.

Et en passant... L'économie de mémoire tu connais ?

Allez... désolé si je me suis montré un peu critique, mais là, c'est vraiment trop...

Voici ma version de ton code (excuse moi d'avance) :

Private Sub Command1_Click()

Dim Tab1(1 To 16) As Integer, nb As Integer, k As Long

If Text1 = "" Or Len(Text1) < 16 Then
MsgBox "Veuillez entrer un numéro de carte (16 chiffres) !!", vbExclamation, "Erreur :"
Exit Sub
End If

For k = 1 To 16
Tab1(k) = Mid$(Text1, k, 1)
Next k

For k = 1 To 15 Step 2
If Tab1(k) * 2 > 9 Then Tab1(k) (Tab1(k) * 2) - 9 Else Tab1(k) Tab1(k) * 2
nb = nb + Tab1(k) + Tab1(k + 1)
Next k

For k = 10 To 150 Step 10
If nb = k Then
MsgBox "Numéro correct (" & nb & ")", vbInformation, "Correct !"
Exit Sub
End If
Next k

MsgBox "Numéro incorrect (" & nb & ")", vbInformation, "Incorrect !"

End Sub
Messages postés
31
Date d'inscription
dimanche 4 mai 2003
Statut
Membre
Dernière intervention
12 mars 2009

Carrément utile dans le cas d'un site payant !

Juste pour Khalilo et pour le fun, j'ai essayé de faire plus court en me basant sur ton code, une fonction qui renvoie Vrai si c'est une CB OK :

Public Function NumValid(ByVal Numéro As String) As Boolean
Dim i, num As Double
For i = 1 To 16
num = num + (((Val(Mid(Numéro, i, 1)) * (((i) Mod 2) + 1)) - 1) Mod 9) + 1
Next
NumValid ((num Mod 10) 0) And (num>= 10) And (num<= 150)
End Function
Messages postés
196
Date d'inscription
vendredi 21 décembre 2001
Statut
Membre
Dernière intervention
25 juillet 2006

====================== AVIS A TOUS ========================

Si vous voulez un générateur infini de numéro de cartes bancaires, mailez moi : bigbang44@free.fr mais merci de mettre "gencb" en sujet ...

A++

bigbang
bigbang44@free.fr
http://bigbang44.free.fr
======================================================================
Messages postés
37
Date d'inscription
samedi 4 mai 2002
Statut
Membre
Dernière intervention
13 mars 2003

Ok,,, c'est vrai,,,que ça réduit un peu,, mais j'ai fait le code assez vite,,,ce pour ca...@++
Afficher les 11 commentaires