Mergand pe algoritmul de validare al unui cod CNP, se poate construi foarte usor o functie ce genereaza CNP-uri fictive valide.
Function Random_CNP() As String
Dim i As Integer
Dim cnp_array(12) As Integer, Sir2(13) As Integer
Dim temporar As String
Dim rnd_sex As Integer, rnd_an As Integer
Dim rnd_luna As Integer, rnd_zi As Integer
Dim rnd_Judet As Integer, rnd_nr As Integer
Dim x As Integer
Dim Sex As String, An As String, Luna As String, Zi As String, Judet As String, Cod As String, ultima As String
rnd_sex = Int((2 - 1 + 1) * Rnd + 1)
rnd_an = Int((Year(Date) - 1900 + 1) * Rnd + 1900)
rnd_luna = Int((12 - 1 + 1) * Rnd + 1)
rnd_zi = Int((28 - 10 + 1) * Rnd + 10)
rnd_Judet = Int((52 - 1 + 1) * Rnd + 1)
rnd_nr = Int((999 - 100 + 1) * Rnd + 100)
If rnd_an >= 2000 Then
Sex = rnd_sex + 4
Else
Sex = rnd_sex
End If
An = Mid(CStr(rnd_an), 3, 2)
If rnd_luna < 10 Then
Luna = "0" & rnd_luna
Else
Luna = rnd_luna
End If
If rnd_zi < 10 Then
Zi = "0" & rnd_zi
Else
Zi = rnd_zi
End If
If rnd_Judet < 10 Then
Judet = "0" & rnd_Judet
Else
Judet = rnd_Judet
End If
Cod = rnd_nr
temporar = Sex & An & Luna & Zi & Judet & Cod
For i = 1 To 12
cnp_array(i) = Mid(temporar, i, 1)
Next i
x = (cnp_array(1) * 2 + cnp_array(2) * 7 + cnp_array(3) * 9 + cnp_array(4) * 1 + cnp_array(5) * 4 + cnp_array(6) * 6 + _
cnp_array(7) * 3 + cnp_array(8) * 5 + cnp_array(9) * 8 + cnp_array(10) * 2 + cnp_array(11) * 7 + cnp_array(12) * 9) Mod 11
If x = 10 Then x = 1
ultima = CStr(x)
Random_CNP = Sex & An & Luna & Zi & Judet & Cod & ultima
End Function
Spor !
Niciun comentariu:
Trimiteți un comentariu