Title: RES: [sqlwin] fun��o para validar CPF

Esse � uma exemplo da lista!

-----Mensagem original-----
De: Alessandro Bin [mailto:[EMAIL PROTECTED]]
Enviada em: Ter�a-feira, 3 de Dezembro de 2002 09:01
Para: [EMAIL PROTECTED]
Assunto: [sqlwin] fun��o para validar CPF


Amigos,

Algu�m teria uma fun��o ou script para validar o CPF?

Valeu,

Alessandro

_________________________________________________________________
MSN Hotmail, o maior webmail do Brasil. http://www.hotmail.com

==============================================
Lista de Centura SQLWindows
Administrador : [EMAIL PROTECTED]
[ http://www.centuraexplorer.com ]
Para sair desta lista mande mensagem para:
[EMAIL PROTECTED] sem nada no Subject e
com o comando a seguir no corpo da msg:
"unsubscribe sqlwin" (sem as aspas)
==============================================

 

--- Begin Message ---
Title: Re: [sqlwin] CNPJ (CGC) - CIC - Como calcular o digito

VEJA ESTE . . .

On SAM_Validate
 Set ivstrCPF = MyValue
 Set ivnCPF[1] = SalStrToNumber( SalStrMidX( ivstrCPF, 0, 1 ) )
 Set ivnCPF[2] = SalStrToNumber( SalStrMidX( ivstrCPF, 1, 1 ) )
 Set ivnCPF[3] = SalStrToNumber( SalStrMidX( ivstrCPF, 2, 1 ) )
 Set ivnCPF[4] = SalStrToNumber( SalStrMidX( ivstrCPF, 3, 1 ) )
 Set ivnCPF[5] = SalStrToNumber( SalStrMidX( ivstrCPF, 4, 1 ) )
 Set ivnCPF[6] = SalStrToNumber( SalStrMidX( ivstrCPF, 5, 1 ) )
 Set ivnCPF[7] = SalStrToNumber( SalStrMidX( ivstrCPF, 6, 1 ) )
 Set ivnCPF[8] = SalStrToNumber( SalStrMidX( ivstrCPF, 7, 1 ) )
 Set ivnCPF[9] = SalStrToNumber( SalStrMidX( ivstrCPF, 8, 1 ) )
 Set ivnCPF[10] = SalStrToNumber( SalStrMidX( ivstrCPF, 9, 1 ) )
 Set ivnCPF[11] = SalStrToNumber( SalStrMidX( ivstrCPF, 10, 1 ) )

! --------------------------------------------------------------------------
----------------------------------
 ! Define o primeiro d�gito, do d�gito verificador

! --------------------------------------------------------------------------
----------------------------------
 Set ivnAux[1] = 10*ivnCPF[1] + 9*ivnCPF[2] + 8*ivnCPF[3] +
                 7*ivnCPF[4] + 6*ivnCPF[5] + 5*ivnCPF[6] +
                 4*ivnCPF[7] + 3*ivnCPF[8] + 2*ivnCPF[9]
 Set ivnAux[2] = ivnAux[1]/11
 Set ivnAux[3] = EsfNumberInteger(  ivnAux[2] )*11
 Set ivnResto = ivnAux[1] - ivnAux[3]
 Set ivnDigitos[1] = 11 - ivnResto
 If ivnDigitos[1]>=10
  Set ivnDigitos[1] = 0

! --------------------------------------------------------------------------
----------------------------------
 ! Define o segundo d�gito, do d�gito verificador

! --------------------------------------------------------------------------
----------------------------------
 Set ivnAux[1] = 11*ivnCPF[1] + 10*ivnCPF[2] + 9*ivnCPF[3] +
                 8*ivnCPF[4] + 7*ivnCPF[5] + 6*ivnCPF[6] +
                 5*ivnCPF[7] + 4*ivnCPF[8] + 3*ivnCPF[9] +
                 2*ivnDigitos[1]
 Set ivnAux[2] = ivnAux[1]/11
 Set ivnAux[3] = EsfNumberInteger( ivnAux[2] )*11
 Set ivnResto = ivnAux[1] - ivnAux[3]
 Set ivnDigitos[2] = 11 - ivnResto
 If ivnDigitos[2]>=10
  Set ivnDigitos[2] = 0
 If (ivnDigitos[1]!=ivnCPF[10]) OR (ivnDigitos[2]!=ivnCPF[11])
  Call SalMessageBox( 'CPF inv�lido!', 'Aviso', MB_IconExclamation|MB_Ok  |
MB_SystemModal )
  Return FALSE
 Else
  Return TRUE



----- Original Message -----
From: Rodrigo Villaverde <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Sexta-feira, 16 de Mar�o de 2001 13:43
Subject: Re: [sqlwin] CNPJ (CGC) - CIC - Como calcular o digito


> Julio, espero que seja �til:
>
> CPF
>
> FORMULA DE CALCULO PARA DIGITO VERIFICADOR DO CPF
>
> Multiplique os digitos correspondentes da seguinte forma.
>
> *** PRIMEIRO DIGITO VERIFICADOR DO CPF ******
>
> CPF-----------|
> 123.456.789-99
> ||| ||| |||
> ||| ||| ||2    Exemplo: ( 1 * 10 )
> ||| ||| |3              ( 2 *  9 )
> ||| ||| 4               ( 3 *  8 )
> ||| ||5                 ( 4 *  7 )
> ||| |6                  ( 5 *  6 )
> ||| 7                   ( 6 *  5 )
> ||8                     ( 7 *  4 )
> |9                      ( 8 *  3 )
> 10                      ( 9 *  2 )
>
> Faca Soma1 = Soma dos resultados das multiplicacoes.
> Exemplo: Soma1 = ( 1 * 10 )+( 2 * 9 )+( 3 * 8 )+ETC...
>
> Divida o Resultado de Soma1 por 11
> Exemplo: Divisao1 = Soma1 / 11
>
> Multiplique o Resultado da Divisao por 11
> Exemplo: Multiplica1 = Divisao1 * 11
>
> Faca uma subtracao da Soma1 pela Multiplica1
> Exemplo: Resto = Soma1 - Multiplica1
>
> Se o resultado (RESTO) for igual a 0 ou igual a 1 o primeiro digito
> do CPF devera ser igual a 0.
> Exemplo: Se Resto = 1 entao Dig1 e igual a 0
>          Se Resto = 0 entao Dig1 e igual a 0
>
> Se o resultado (RESTO) for maior que 1 entao deve-se subtrair o resultado
> (RESTO) de 11 para conseguir o primeiro digito verificador.
> Exemplo: Se Resto = 8 entao Dig1 igual a ( 11 - 8 ) = 3
> Exemplo: Se Resto = 5 entao Dig1 igual a ( 11 - 5 ) = 6
>
>
>
>
> *** SEGUNDO  DIGITO VERIFICADOR DO CPF ******
>
> CPF-----------|
> 123.456.789-99   ( Primeiro Digito Verifador multiplicado por 2 )
> ||| ||| |||
> ||| ||| ||3    Exemplo: ( 1 * 11 )
> ||| ||| |4              ( 2 * 10 )
> ||| ||| 5               ( 3 *  9 )
> ||| ||6                 ( 4 *  8 )
> ||| |7                  ( 5 *  7 )
> ||| 8                   ( 6 *  6 )
> ||9                     ( 7 *  5 )
> |10                     ( 8 *  4 )
> 11                      ( 9 *  3 )
>                      ( DIG1 *  2 )
>
> Faca Soma2 = Soma dos resultados das multiplicacoes. Nao se esqueca de
> multiplicar e somar o primeiro digito encontrado por 2.
> Exemplo: Soma2 = ( 1 * 10 )+( 2 * 9 )+ETC..., ( DIG1 * 2 )
>
> Divida o Resultado de Soma2 por 11
> Exemplo: Divisao2 = Soma2 / 11
>
> Multiplique o Resultado da Divisao por 11
> Exemplo: Multiplica2 = Divisao2 * 11
>
> Faca uma subtracao da Soma1 pela Multiplica1
> Exemplo: Resto = Soma2 - Multiplica2
>
> Se o resultado (RESTO) for igual a 0 ou igual a 1 o segundo digito
> do CPF devera ser igual a 0.
> Exemplo: Se Resto = 1 entao Dig2 e igual a 0
>          Se Resto = 0 entao Dig2 e igual a 0
>
> Se o resultado (RESTO) for maior que 1 entao deve-se subtrair o resultado
> (RESTO) de 11 para conseguir o segundo digito verificador.
> Exemplo: Se Resto = 8 entao Dig2 igual a ( 11 - 8 ) = 3
> Exemplo: Se Resto = 5 entao Dig2 igual a ( 11 - 5 ) = 6
>
>
> ATENCAO: Para que o CPF seja valido os dois digitos verificadores devem
>          conferir.
>
>
> CGC
>
>
> FORMULA DE CALCULO PARA DIGITO VERIFICADOR DO CGC
>
> Multiplique os digitos correspondentes da seguinte forma.
>
> *** PRIMEIRO DIGITO VERIFICADOR DO CGC ******
>
> CGC---------------|
> 12.345.678/0001-99
> || ||| ||| ||||        ( 1 *  5 )
> || ||| ||| |||2        ( 2 *  4 )
> || ||| ||| ||3         ( 3 *  3 )
> || ||| ||| |4          ( 4 *  2 )
> || ||| ||| 5           ( 5 *  9 )
> || ||| ||6             ( 6 *  8 )
> || ||| |7              ( 7 *  7 )
> || ||| 8               ( 8 *  6 )
> || ||9                 ( 9 *  5 )
> || |2                  (10 *  4 )
> || 3                   (11 *  3 )
> |4                     (12 *  2 )
> 5
>
> Faca Soma1 = Soma dos resultados das multiplicacoes.
> Exemplo: Soma1 = ( 1 * 5 )+( 2 * 4 )+( 3 * 3 )+ETC...
>
> Divida o Resultado de Soma1 por 11
> Exemplo: Divisao1 = Soma1 / 11
>
> Multiplique o Resultado da Divisao por 11
> Exemplo: Multiplica1 = Divisao1 * 11
>
> Faca uma subtracao da Soma1 pela Multiplica1
> Exemplo: Resto = Soma1 - Multiplica1
>
> Se o resultado (RESTO) for igual a 0 ou igual a 1 o primeiro digito
> do CGC devera ser igual a 0.
> Exemplo: Se Resto = 1 entao Dig1 igual a 0
>          Se Resto = 0 entao Dig1 igual a 0
>
> Se o resultado (RESTO) for maior que 1 entao deve-se subtrair o resultado
> (RESTO) de 11 para conseguir o primeiro digito verificador.
> Exemplo: Se Resto = 8 entao Dig1 igual a ( 11 - 8 ) = 3
> Exemplo: Se Resto = 5 entao Dig1 igual a ( 11 - 5 ) = 6
>
> *** SEGUNDO  DIGITO VERIFICADOR DO CGC ******
>
> CGC---------------|
> 12.345.678/0001-99   ( Primeiro Digito Verifador multiplicado por 2 )
> || ||| ||| ||||        ( 1 *  6 )
> || ||| ||| |||3        ( 2 *  5 )
> || ||| ||| ||4         ( 3 *  4 )
> || ||| ||| |5          ( 4 *  3 )
> || ||| ||| 6           ( 5 *  2 )
> || ||| ||7             ( 6 *  9 )
> || ||| |8              ( 7 *  8 )
> || ||| 9               ( 8 *  7 )
> || ||2                 ( 9 *  6 )
> || |3                  (10 *  5 )
> || 4                   (11 *  4 )
> |5                     (12 *  3 )
> 6                      ( Dig1 * 2 )
>
>
> Faca Soma2 = Soma dos resultados das multiplicacoes. Nao se esqueca de
> multiplicar e somar o primeiro digito encontrado por 2.
> Exemplo: Soma2 = ( 1 * 6 )+( 2 * 5 )+ETC..., ( DIG1 * 2 )
>
> Divida o Resultado de Soma2 por 11
> Exemplo: Divisao2 = Soma2 / 11
>
> Multiplique o Resultado da Divisao por 11
> Exemplo: Multiplica2 = Divisao2 * 11
>
> Faca uma subtracao da Soma1 pela Multiplica1
> Exemplo: Resto = Soma2 - Multiplica2
>
> Se o resultado (RESTO) for igual a 0 ou igual a 1 o segundo digito
> do CGC devera ser igual a 0.
> Exemplo: Se Resto = 1 entao Dig2 e igual a 0
>          Se Resto = 0 entao Dig2 e igual a 0
>
> Se o resultado (RESTO) for maior que 1 entao deve-se subtrair o resultado
> (RESTO) de 11 para conseguir o segundo digito verificador.
> Exemplo: Se Resto = 8 entao Dig2 igual a ( 11 - 8 ) = 3
> Exemplo: Se Resto = 5 entao Dig2 igual a ( 11 - 5 ) = 6
>
>
> ATENCAO: Para que o CGC seja valido os dois digitos verificadores devem
>          conferir.
>
>
> Qualquer d�vida, entre em contato;
> []s
> Rodrigo.
>
> _________________________________________________________________________
> Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com.
>
> ==============================================
> Lista de Centura SQLWindows
> Administrador : [EMAIL PROTECTED]
> [ http://www.centuraexplorer.com ]
> Para sair desta lista mande mensagem para:
> [EMAIL PROTECTED] sem nada no Subject e
> com o comando a seguir no corpo da msg:
> "unsubscribe sqlwin" (sem as aspas)
> ==============================================
>

==============================================
Lista de Centura SQLWindows
Administrador : [EMAIL PROTECTED]
[ http://www.centuraexplorer.com ]
Para sair desta lista mande mensagem para:
[EMAIL PROTECTED] sem nada no Subject e
com o comando a seguir no corpo da msg:
"unsubscribe sqlwin" (sem as aspas)
==============================================

--- End Message ---

Responder a