Foros del Web » Programando para Internet » PHP »

Concordancias entre ficheros

Estas en el tema de Concordancias entre ficheros en el foro de PHP en Foros del Web. Wenas, tengo 2 ficheros: figuras-jugables.txt -1-2-3-4- -3-4-5-6- cuadrados-jugables.txt -2- -6- -2- Quiero que me guarde en apuestas.txt la linea de figuras-jugables.txt que contenga alguno de ...
  #1 (permalink)  
Antiguo 09/02/2006, 18:11
 
Fecha de Ingreso: febrero-2002
Mensajes: 139
Antigüedad: 22 años, 2 meses
Puntos: 0
Concordancias entre ficheros

Wenas, tengo 2 ficheros:
figuras-jugables.txt
-1-2-3-4-
-3-4-5-6-

cuadrados-jugables.txt
-2-
-6-
-2-

Quiero que me guarde en apuestas.txt la linea de figuras-jugables.txt que contenga alguno de los numeros de cuadrados-jugables pero sola 1 vez.

Tal como lo he planteado me copia 2 veces la misma linea y no se como replantear el problema, os pongo el codigo. Alguna idea?

$concordancias = file('figuras-jugables.txt');
$numeros_cuadros = file('cuadros-jugables.txt');
$puntuacion = array();
$repeticion = array();
for ( $i = 0, $n = count ($concordancias); $i < $n; $i++) {
for( $j = 0, $m = count ($numeros_cuadros); $j < $m; $j++) {
$file = "apuestas.txt";
$fp = fopen($file,"r");
$apuestas = fread($fp,filesize($file));
fclose($fp);

$puntuacion[$i] = substr_count ($concordancias[$i], trim($numeros_cuadros[$j]));
$repeticion[$i] = substr_count ($apuestas , $concordancias[$i]);

if ($puntuacion[$i]>0 && $repeticion[$i] == 0) {
$fp = fopen( 'apuestas.txt','a');
fwrite( $fp, $concordancias[$i]."\r\n");
fclose ($fp);
}
}
}
  #2 (permalink)  
Antiguo 09/02/2006, 20:01
 
Fecha de Ingreso: diciembre-2005
Mensajes: 122
Antigüedad: 18 años, 4 meses
Puntos: 0
esto se me hace conocido...quiero que veas un error muy grosero:

Código:
for ( $i = 0, $n = count ($concordancias); $i < $n; $i++) { 
    for( $j = 0, $m = count ($numeros_cuadros); $j < $m; $j++) { 
        $file = "apuestas.txt";
        $fp = fopen($file,"r");
        $apuestas = fread($fp,filesize($file));
        fclose($fp);
        ...
     }
}
lo que haces aqui es abrir el mismo archivo apuestas.txt $n*$m veces. ademas, lo abres en modo lectura por lo que no podras escribir nada en él.

mi solución:
Código:
$concordancias = file('figuras-jugables.txt'); 
$numeros_cuadros = file('cuadros-jugables.txt'); 
$fp = fopen( 'apuestas.txt', 'w');

for ( $i = 0, $n = count( $concordancias ); $i < $n; $i++ ) {
    for( $j = 0, $m = count( $numeros_cuadros); $j < $m; $j++) {
        if ( strstr( rtrim( $concordancias[$i] ),  rtrim( $numeros_cuadros[$j] ) ) != false ) {
            fwrite( $fp, rtrim( $concordancias[$i] ) . "\n" );
            break;
        }
    }
}
fclose( $fp );
  #3 (permalink)  
Antiguo 10/02/2006, 06:44
 
Fecha de Ingreso: febrero-2002
Mensajes: 139
Antigüedad: 22 años, 2 meses
Puntos: 0
No sé de que te sonará xDDD


J..r, pues no entiendo pq no me funcionaba, metí la lectura dle fichero dentro del for para que conforme va grabando vaya leyendo y así contar con substr_count.

Weno, gracias de nuevo plus_ultra.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:12.