Código de Clipper/FiveWin - Digito verificador RUT

sin imagen de perfil

Digito verificador RUTgráfica de visualizaciones


Clipper/FiveWin

estrellaestrellaestrellaestrellaestrella(4)
Publicado el 27 de Junio del 2002 por Charchito Rastor
19.632 visualizaciones desde el 27 de Junio del 2002
Digito verificador, Cedula Nacional de Identidad Chilena.

Versión 1
estrellaestrellaestrellaestrellaestrella(4)

Publicado el 27 de Junio del 2002gráfica de visualizaciones de la versión: Versión 1
19.633 visualizaciones desde el 27 de Junio del 2002
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
/****************************************************************************
           Digito verificador, Cedula Nacional de Identidad Chilena.
         =============================================================

   Debes ingresar el Rut, sin el digito verificador obviamente, en una
   variable de tipo numerica, maximo ocho caracteres.

   Eso lo guardas en la variable XX, despues llamas a la funcion:
   - Valida_Rut(XX)

   Esto te devolvera otra variable: "Digito", la cual contiene nuestro
   Digito Verificador.
*****************************************************************************/
 
/* :**********************: */
Function Valida_Rut(Numero)
/* :**********************: */
Largo := Len(Str(Numero))
Digito := Suma := Contenedor := Divi := 0
Multi := 2
For i = Largo to 1 Step -1
    Contenedor = Val(SubStr(Str(Numero), i , 1)) * Multi
    Suma = Suma + Contenedor
    Multi = Multi + 1
    If Multi = 8
       Multi = 2
    EndIf
Next i
Divi = Mod(Suma, 11)
Digito = Divi - 11
If Digito < 0
   Digito = Digito * -1
EndIf
If Digito = 11
   Digito := "0"
ElseIf Digito = 10
   Digito := "K"
Else
   Digito := Alltrim(Str(Digito))
EndIf
 
Return Digito



Comentarios sobre la versión: Versión 1 (4)

19 de Julio del 2003
estrellaestrellaestrellaestrellaestrella
simple y util
Responder
2 de Diciembre del 2004
estrellaestrellaestrellaestrellaestrella
ete ,mejol:

#include<stdio.h>
#include<conio.h>

long int saca_dig(long int);

void main()
{long int run,dvv;

clrscr();
printf("ingresa tu rut:\n");
scanf("%li", & run);

dvv=saca_dig(run);

if ((dvv%11)==0)
printf("el d¡gito verificador es 0");

if (((dvv%11)==1)
printf("el d¡gito verificador es k");

if (((dvv%11)>1)
{
printf("el d¡gito verificador es %i", 11-(dvv%11));
}
//ahora funciona bien
getch();
}

long int saca_dig(long int x)
{long int aux=0,cont=2;

while(x!=0)
{
aux+=((x%10)*cont);
cont++;
if (cont>7) cont=2;
x/=10;
}
return(aux);
}
Responder
23 de Marzo del 2007
estrellaestrellaestrellaestrellaestrella
Aqui otra version mas pequeña y optimizada.
*------------------------------------------------------------------------------
* Funcion para validar el R.U.T., segun el digito verificador.
* Retorna .T. o .F., segun la validacion del rut.
*------------------------------------------------------------------------------
* Autor : Ricardo Alfredo Huincahue Henriquez.
*------------------------------------------------------------------------------
Function valida_rut
parameter pr_rut
Private d1,d2,d3,d4,d5,d6,d7,d8
If empty(pr_rut)
Return .f.
endif
pr_rut = padl(alltrim(pr_rut), 9)
d1 = val(substr(pr_rut, 1, 1))
d2 = val(substr(pr_rut, 2, 1))
d3 = val(substr(pr_rut, 3, 1))
d4 = val(substr(pr_rut, 4, 1))
d5 = val(substr(pr_rut, 5, 1))
d6 = val(substr(pr_rut, 6, 1))
d7 = val(substr(pr_rut, 7, 1))
d8 = val(substr(pr_rut, 8, 1))
Return substr('0K987654321',mod(d1*3+d2*2+d3*7+d4*6+d5*5+d6*4+d7*3+d8*2,11)+1,1)==right(pr_rut,1)
Responder
14 de Junio del 2007
estrellaestrellaestrellaestrellaestrella
esta bueno y tambien serviria para rut de mas de 8 digitos porque al llegar al digito 7 de atras para adelante el multiplicador volveria a ser 2 con lo que vuelve a empezar
Responder

Comentar la versión: Versión 1

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s241