Comproba DNI / NIF con Vb6 (Visual Basic 6)
Bienvenidos a VerTutoriales.com, en esta ocasión os traigo del recuerdo una función para comprobar el DNI o NIF en vb6 de un cliente/proveedor o lo que sea que tenga DNI (claro).
Esta función es muy utilizada en programas de gestión donde se deben tomar datos (en mi caso clientes) y que me ha traido recuerdos de cuando estudiaba programación en el instituto donde nos ponían algunos ejercicios y este precisamente lo tuvimos que preparar para diferentes lenguajes, hasta en el mítico Cobol! que muchos ni sabréis lo que es!
Pero dejando de lado un poco esta melancolía por la programación cuando internet era de 56k… vayamos al grano, os dejo la función que estáis buscando:
‘Devuelve el NIF del cliente con la letra que debiera de llevar
Function CompruebaNIF(strA As String) As StringConst cCADENA = «TRWAGMYFPDXBNJZSQVHLCKE»
Const cNUMEROS = «0123456789»
Dim strT As String, strB As String
Dim a#, NIF#, b#, c#
Dim i As IntegerstrT = Trim$(strA)
If Len(strT) = 0 Then Exit FunctionstrB = «»
‘—Dejar sólo los números…
For i = 1 To Len(strA)
If InStr(cNUMEROS, Mid$(strA, i, 1)) Then
strB = strB + Mid$(strA, i, 1)
End If
Next
strA = strB
a# = 0
NIF# = Val(strA)
Do
b# = Int(NIF# / 24)
c# = NIF# – (24 * b#)
a# = a# + c#
NIF# = b#
Loop While b# <> 0
b# = Int(a# / 23)
c# = a# – (23 * b#)
CompruebaNIF = Trim$(strA) + «-» + Mid$(cCADENA, c# + 1, 1)End Function
La función como tal, recibe el parámetro del nif (con o sin letra) y toma solamente los caracteres numéricos para realizar la operación y tomar la letra que le pertenezca, montando la cadena «Numero»-«Letra» y devolviéndola para su uso.
¿Qué función tenéis para compartir que utilicéis desde hace mucho?
Un saludo!