Publicado por Juan Pablo el 20.Sep.2004 | Comentarios (2)
Hace un par de semanas, un visitante de juque.cl me llamó a mi teléfono móvil, ¿el motivo?... ayuda "bomberil" con una validación de rut's, pero grandes cantidades de ellos. Manuel - creo que se identificó - me preguntaba si era posible hacer la misma validación utilizando MS-Excel ya que él quería consolidar una gran cantidad de información; mhhh pienso que es perfectamente posible pero dado que sufro de alergia por aplicaciones Microsoft ni siquiera lo intenté.
El viernes pasado (en casa de mis padres) - mientras el jugo de uva inundaba mi boca y una empanada caldúa se escurría por mi brazo izquierdo, recordé el problema de Manuel; así que comencé a tirar líneas en una servilleta. El resultado es un "dieciochero" script que valida el Rut pero por lotes, el cual se suma a la familia Validador de RUT en PHP y Validar Rut en Javascript . El "bicho" lee línea a línea un archivo llamado ruts.txt y arroja una página con el resultado de la validación, he habilitado un demo del mismo.
En el futuro es mucho más cómodo que me envíen un correo a un llamado telefónico, ahora si deseas escuchar mi impostada voz no te detengo.
Y el código dice más o menos así...:
<?php
/*
+++ validarutxlotes.php
d: Valida lote de rut, no importa si está con ,|.|-|k|K
a: Juan Pablo Aqueveque -> juque.cl
f: 2004-09-19 23:13:26
- - - - - - - - - - - - - - - - - - - - - - - - - - */
function valida_rut($r)
{
$r=strtoupper(ereg_replace('\.|,|-','',$r));
$sub_rut=substr($r,0,strlen($r)-1);
$sub_dv=substr($r,-1);
$x=2;
$s=0;
for ( $i=strlen($sub_rut)-1;$i>=0;$i-- )
{
if ( $x > 7 )
{
$x=2;
}
$s += $sub_rut[$i]*$x;
$x++;
}
$dv = 11- ( $s% 11 );
if ( $dv==10 )
{
$dv='K';
}
if ( $dv==11 )
{
$dv='0';
}
if ( $dv==$sub_dv )
{
return true;
}
else
{
return false;
}
}
/* Archivo con ruts
- - - - - - - - - - - - - */
$txt = "ruts.txt";
if ( !file_exists($txt) )
{
echo 'el archivo ('.$txt.') no existe';
}
else
{
echo '<ol>';
$rut = @file("ruts.txt");
for( $i=0 ; $i < count($rut) ; $i++ )
{
$rut[$i]=trim($rut[$i]);
echo '<li>';
echo valida_rut($rut[$i]) ? $rut[$i] : $rut[$i].' ERR';
echo '</li>';
}
echo '</ol>';
}
?>
Enlace Permanente, Comentarios (2), Publicada en: PHP
hola, estoy haciendo un programilla en c para validar rut, pero no se como implementarlo, si tuvieses las ganas y el tiempo de explicarme el como se hace, seria muy bakan, algo me acuerdo que hay que multiplicar el primero por 2, el segundo digito por 3, y asi hasta 7... y ahi quedé, y otra cosa con el modulo 11 de la suma de los resultados. he intentado determinar como se hace en papel, pero y no doy mas de sueño, plis, ayudeme cumpa, si?, de antebrazo, mil gracias