Algoritmo De La Curp

Páginas: 6 (1430 palabras) Publicado: 14 de octubre de 2012
ALGORITMOS PARA CURP
PASO1: Script CURPBASE: Calcular el CURP básico
PASO2: No implementado: Si las 4 primeras letras del CURP corresponde a una palabra prohibida,
reemplazar el carto digíto por la letra "X"
PASO3: Script CURPHOMO: Calcular la homoclave (2 digítos)
PASO4: Script CURPDIGIT: Calcular el digíto verificador ("0" a "9" o la letra "A")
Ver las tablas en anexo (FormatoExcel): CURPDATA, CURPDATA2 y CURP_NO
PERSONA MORAL:
Los algoritmos se pueden modificar facilmente cambiando el cálculo de los 3/4 primeros digítos)
Para el digíto verificador agregar un espacio ASC(32) o 20H al CURPBasico_Homo " ABC032908XY"
=============================================================================================
; Script CURPBASE.SC
;
;
; V01.1 : 04.07.99 :Création
; V01.2 : 10.07.00 : Suppression des Maria, José, etc dans NombrePila
;
; Permite generar el CURP básico tipo: ABCD991231 o el CURP básico tipo: ABCD991231MDFABC
; Entrée CURP: ApellidoPat, ApellidoMat, NombrePila, FechaNacim
; Sortie : CURPBasico

Proc Depurar(NombreADepurar)
Switch
Case SubStr(NombreADepurar,1,6) = "DE LA " : KK = 7
Case SubStr(NombreADepurar,1,3)= "DE " : KK = 4
Case SubStr(NombreADepurar,1,2) = "Y " : KK = 3
Case SubStr(NombreADepurar,1,4) = "DEL " : KK = 5
Case SubStr(NombreADepurar,1,10) = "MA DE LOS " : KK = 11
Case SubStr(NombreADepurar,1,9) = "MA DE LA " : KK = 10
Case SubStr(NombreADepurar,1,7) = "MA DEL " : KK = 8
Case SubStr(NombreADepurar,1,12) = "MARIADE LA " : KK = 13
Case SubStr(NombreADepurar,1,9) = "MARIA DE " : KK = 10
Case SubStr(NombreADepurar,1,10) = "MARIA DEL " : KK = 11
Case SubStr(NombreADepurar,1,6) = "MARIA " : KK = 7
Case SubStr(NombreADepurar,1,5) = "JOSE " : KK = 6
Case SubStr(NombreADepurar,1,8) = "JOSE DE " : KK = 9
OtherWise : KK= 1
EndSwitch
NombreDepurado = SubStr(NombreADepurar,KK,30) ; 30 caractères maxi
Return NombreDepurado
EndProc

If ApellidoPat = "" Or ApellidoMat = "" Or NombrePila = ""
Then
Beep
Message "Capturar el nombre completo"
Sleep 3000
Return False
EndIf
If FechaNacim = BlankDate()
Then
Beep
Message "Capturar la fecha de nacimiento"Sleep 3000
Return False
EndIf

If Len(FechaNacim) = 7 or FechaNacim = 9 ; 2 ou 4 digit pour l'année
Then FechaNacim$ = "0" + StrVal(FechaNacim)
Else FechaNacim$ = StrVal(FechaNacim)
EndIf

AnoCURP = SubStr(FechaNacim$,Len(FechaNacim$)-1,2)
MesCURP = SubStr(FechaNacim$,4,2)
DiaCURP = SubStr(FechaNacim$,1,2)

Depurar(ApellidoPat)ApellidoPatDepurado = NombreDepurado
Depurar(ApellidoMat)
ApellidoMatDepurado = NombreDepurado
Depurar(NombrePila)
NombrePilaDepurado = NombreDepurado

L1 = SubStr(ApellidoPatDepurado,1,1)
k = 2
L2 = ""
While Not (L2 = "A" Or L2 = "E" Or L2 = "I" Or L2= "O" Or L2 = "U")
L2 = SubStr(ApellidoPatDepurado,k,1)
K = K + 1
EndWhile
L3 = SubStr(ApellidoMatDepurado,1,1)
L4 =SubStr(NombrePilaDepurado,1,1)

CURPBasico = L1 + L2 + L3 + L4 + AnoCURP + MesCURP + DiaCURP

=====================================================================
;Script CURPHOMO.SC

; V01.1 : 04.07.1999 : Création

; Entrée : NombreCompleto = ApellidoPat + " " + ApellidoMat + " " + NombrePila (Sin depurar)
; Sortie : CURPHomo (2 letras)
; Utilise la table CURPDATA

Medida = Len(NombreCompleto)a =1
c = "0"
View "CURPData"

While a <= Medida
b= SubStr(NombreCompleto,a,1)
Moveto [CARACTER]
Locate b
If Retval = True
Then Avalorh = [VALORH]
Else Avalorh = "00"
EndIf
c = c + Avalorh
a = a + 1
EndWhile

a = 1
b = 2
Resul = 0
Result = 0
Medida = Len(c)

While b <= Medida
Mul1 = SubStr(c,a,2)
Mul2 = SubStr(c,b,1)
Resul =...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Algoritmo De Curp
  • Curp
  • curp
  • curp
  • curp
  • curp
  • curp
  • Curp

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS