You are on page 1of 2

LENGUAJE DE PROGRAMACION II

PRACTICA CON FUNCIONES DE CADENA


VALIDACION NUMERO DE TARJETA DE CREDITO
Public Class lenguaje2
Dim digito, numero As String
Dim suma_digitos As Integer
Dim longitud As Integer
Dim primera_validacion As Boolean = False
Dim segunda_validacion As Boolean = False
Private Sub btn_verificar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btn_verificar.Click
Dim primer_digito, digitos As String
Dim i As Integer
numero = txt_numtarjeta.Text
'se obtiene el primer digito de la tarjeta de credito usando la funcion left
primer_digito = Microsoft.VisualBasic.Left(numero, 1)
'se evalua el primer digito para determinar la casa emisora o si es invalido
Select Case primer_digito
Case "3"
emisor = "American Express"
primera_validacion = True
Case "4"
emisor = "Visa"
primera_validacion = True
Case "5"
emisor = "MasterCard"
primera_validacion = True
Case Else
'si es invalido envia mensaje y sale del proceso de verificacion
'ya que no procede hacer la segunda verificacion
MsgBox("No paso la primera verificacion, la tarjeta no es valida")
Exit Sub
End Select
'si pasa la primera verificacion envia mensaje con nombre de la cada emisora
MsgBox("La casa emisora es " & emisor)
'como paso la primera verificacion se procede con la segunda validacion
'que es sumar todos los digitos que forman el numero de la tarjeta
For i = 1 To longitud 'en la variable longitud se determino la longitud de
'la cadena de numero de tarjeta
'se extrae un digito en una posicion especifica
digitos = Microsoft.VisualBasic.Mid(txt_numtarjeta.Text, i, 1)
'se va a sumar lo digitos pero se condiciona a que sean numeros y no guiones
If digitos <> "-" Then
suma_digitos = suma_digitos + CInt(digitos)
End If
Next
lbl_suma.Text = CStr(suma_digitos)

'si la suma de esos digitos es menor a 90 pasa la segunda verificacion


If suma_digitos < 90 Then
MsgBox("La tarjeta es valida")
Else
MsgBox("No paso la segunda verificacion, la tarjeta no es valida")
End If
End Sub
Private Sub btn_nueva_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btn_nueva.Click
For Each Control As Control In Me.Controls
If TypeOf Control Is TextBox Or TypeOf Control Is MaskedTextBox Then
Control.Text = Nothing
End If
Next
End Sub
Private Sub txt_numtarjeta_LostFocus(ByVal sender As Object, ByVal e As
System.EventArgs) Handles txt_numtarjeta.LostFocus
'se determina la longitud de la cadena numero de tarjeta usando la funcion Len
longitud = Len(txt_numtarjeta.Text)
If longitud < 19 Then 'si la longitud es menor a 19 es porque no se escribio un
digito
MsgBox("Numero invalido, debe tener 16 digitos")
txt_numtarjeta.Clear()
End If
End Sub
End Class