Código de Clipper/FiveWin - Digito verificador RUT

Versión 1
estrellaestrellaestrellaestrellaestrella(4)

Publicado el 27 de Junio del 2002gráfica de visualizaciones de la versión: Versión 1
20.681 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...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s241