VERIFICATEUR CB

Messages postés
2674
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
- - Dernière réponse : joblak
Messages postés
10
Date d'inscription
mercredi 26 mars 2003
Statut
Membre
Dernière intervention
16 juin 2007
- 20 janv. 2005 à 01:24
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

joblak
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
louisvbfrance
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
cs_thebigbang
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
======================================================================
LaMoUcHe2002
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...@++
cs_khalilo
Messages postés
71
Date d'inscription
jeudi 17 janvier 2002
Statut
Membre
Dernière intervention
12 mai 2004
-
g fait une faute dans le "if" il faut mettre nb < 151.

sinon c terrible non?


@+
khaliloo Le Pyroman