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