MOD 10

09/05/2006 - 21:13 por Julio Briceño | Informe spam
Saludos Cordiales,

¿Alguien conoce o sabe el algoritmo (MOD 10) para encontrar el dígito de
chequeo en tarjetas? ¿Es un estándar?

Hasta luego, gracias de antemano y disculpen si la pregunta está fuera de
lugar.

Julio C. Briceño R.
 

Leer las respuestas

#1 Angel. E. Ruiz. P
10/05/2006 - 02:57 | Informe spam
Amigo esta es una funcion que tenia en vb 6.0

Function EsCCValido(sTarjeta As String) As Boolean
Dim iPeso As Integer
Dim iDigito As Integer
Dim iSuma As Integer
Dim iContador As Integer
Dim sNuevaTarjeta As String
Dim cCaracter As String * 1

iPeso = 0
iDigito = 0
iSuma = 0

'Reemplazar cualquier no digito por una cadena vacía
For iContador = 1 To Len(sTarjeta)
cCaracter = Mid(sTarjeta, iContador, 1)
If IsNumeric(cCaracter) Then
sNuevaTarjeta = sNuevaTarjeta & cCaracter
End If
Next iContador

' Si es 0 devolver Falso
If sNuevaTarjeta = 0 Then
EsCCValido = False
Exit Function
End If

' Si el número de dígitos es par el primer peso es 2, de lo
' contrario es 1
If (Len(sNuevaTarjeta) Mod 2) = 0 Then
iPeso = 2
Else
iPeso = 1
End If

For iContador = 1 To Len(sNuevaTarjeta)
iDigito = Mid(sNuevaTarjeta, iContador, 1) * iPeso
If iDigito > 9 Then iDigito = iDigito - 9
iSuma = iSuma + iDigito
' Cambiar peso para el siguiente dígito
If iPeso = 2 Then
iPeso = 1
Else
iPeso = 2
End If
Next iContador

' Devolver verdadero si la suma es divisible por 10
If (iSuma Mod 10) = 0 Then
EsCCValido = True
Else
EsCCValido = False
End If
End Function
Private Sub btnComprobarCC_Click()
If EsCCValido(Text1) Then
MsgBox "Tarjeta válida"
Else
MsgBox "Tarjeta inválida"
End If
End Sub



Saludos cordiales,
Ángel Ruiz
MCP C#
MVP de Visual Basic desde el 2004
Caracas - Venezuela
"El conocimiento es un bien, que crece a medida que se comparte"
"Julio Briceño" escribió en el
mensaje news:
Saludos Cordiales,

¿Alguien conoce o sabe el algoritmo (MOD 10) para encontrar el dígito de
chequeo en tarjetas? ¿Es un estándar?

Hasta luego, gracias de antemano y disculpen si la pregunta está fuera de
lugar.

Julio C. Briceño R.

Preguntas similares