Ver Mensaje Individual
  #4 (permalink)  
Antiguo 10/01/2006, 23:18
Avatar de Seppo
Seppo
 
Fecha de Ingreso: marzo-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.284
Antigüedad: 19 años, 1 mes
Puntos: 17
bueno, creo q está listo...
Me agarraste desvelado y con ganas de "pi eich pi", no creas q siempre va a ser tan fácil

Código PHP:
<?php
$root1 
"fichero1.txt";
$fp1 fopen($root1,"r");
$txt1 fread($fp1,filesize($root1));
fclose($fp1);
// en $txt1 guardé la lista de números

$root2 "fichero2.txt";
$fp2 fopen($root2,"r");
$txt2 fread($fp2,filesize($root2)+1);
fclose($fp2);

// en $txt2 la lista de líneas

$new_txt3 ""// después voy a ir agregando los resultados

$nums explode(chr(13),trim($txt1)); //separo todos los renglones de números en un array
foreach ($nums as $campo => $valor) {
    
$nums[$campo] = trim(str_replace("-","",$valor)); // le quito los guiones para qeudarme con los números
}

$lines explode(chr(13),trim($txt2)); // separo las lineas

foreach ($lines as $linea) {
    
$linea trim($linea); 
    
$linea substr($linea,1,strlen($linea) - 2); // en cada linea le saco los caracteres de más
    
$linea_numeros explode("-",$linea); // lo separo por los guiones
    
if (count(array_intersect($linea_numeros,$nums)) == 3) { // si la interseccion entre esta linea y todos los números del fichero 1 es correcta
        
$diferencia array_diff($linea_numeros,$nums);
        
$new_txt3 .= "-".$diferencia[0].$diferencia[1].$diferencia[2].$diferencia[3]."-".chr(13); // me lo agrega a un archivo. La diferencia puede ser en la posicion 0, 1, 2 o 3, pero sólo existe una, así que si concateno todas, me va a devolver la correcta... no es prolijo, pero es efectivo
    
} else {
        
//acá si querés hacer algo con las líneas que tienen 4, 2, 1 o 0 "aciertos"
    
}
}
$fp3 fopen("fichero3.txt","w+");
fwrite($fp3,$new_txt3); // que escriba eñ fichero3
fclose($fp3);
?>