PHP - Manipulacion archivo txt

 
Vista:
sin imagen de perfil

Manipulacion archivo txt

Publicado por carlos (10 intervenciones) el 17/06/2016 19:57:58
buenas he intentado de muchas formas pero no e podido
yo tengo estos datos en un txt
4ed4e0bf7da54a99ab9acb519a9977c2
yo necesito extraer todo los valores de las líneas donde dice números y compararlo con un valor x y me de como resultado el valor menor a x ....por ejemplo
tengo este numero 2450 , quiero compararlo con los valores que esta en las líneas numero del txt
y me de como resultado el valor menos a 2450 qye seria este 2354
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de kip
Val: 2.325
Plata
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Manipulacion archivo txt

Publicado por kip (877 intervenciones) el 17/06/2016 22:32:29
Hola, en el caso que propones 2354 no seria el unico numero menor que 2450, estaria tambien el 1200, no lo crees?

He hecho un par de lineas de codigo que hacen lo que necesitas:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
 
$fp = fopen("op.txt", "r");
$i=0;
$numero = 2450;
while (!feof($fp)){//bucle para leer todas las lineas del archivo
    $linea = fgets($fp);//almaceno la linea de archivo
    if (stristr($linea,'numero')){//busco las linea donde se encuentre la palabra numero
        $numero2=trim(substr($linea,7));//almaceno el numero de la linea 
        echo ($numero>$numero2) ? $numero2.'</br>' : '';// muestro el numero menor
        $i++;
    }
}
 
?>

Espero te sirva.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de kip
Val: 2.325
Plata
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Manipulacion archivo txt

Publicado por kip (877 intervenciones) el 17/06/2016 22:54:22
Te dejo tambien otra manera con menos lineas de codigo:

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
 
$fp = file("op.txt", FILE_IGNORE_NEW_LINES);
$numero = 2450;
 
foreach($fp as $k=>$val){
    $numero2 =substr(stristr($val,'numero'),7); //extraigo el numero de las lineas que inician en numero
    if (is_numeric($numero2)){//comprobacion
        echo ($numero>$numero2) ? $numero2.'</br>' : '' ;//evaluo y muestro los numeros menores 
    }
}
 
?>

Analiza ambas y trabaja con la que mas desees.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Manipulacion archivo txt

Publicado por carlos (10 intervenciones) el 17/06/2016 22:55:43
Hola gracias por ayudarme
lo hice de esa forma y es resultado es blanco
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de kip
Val: 2.325
Plata
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Manipulacion archivo txt

Publicado por kip (877 intervenciones) el 17/06/2016 22:57:51
Podrias colocar como armaste el codigo ? Fijate que el txt debe tener el mismo nombre con el que lo llamas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Manipulacion archivo txt

Publicado por carlos (10 intervenciones) el 17/06/2016 23:08:53
si lo puse igual como me lo mandaste el txt tiene ese mismo nombre
una pregunta que quiere decir el numero 7 que colocas al almacenar el numero de lineas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de kip
Val: 2.325
Plata
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Manipulacion archivo txt

Publicado por kip (877 intervenciones) el 17/06/2016 23:12:24
El numero 7 sirve para eliminar la palabra numero que tiene 6 caracteres y asi obtener solo el entero, coloco 7 por el caracter del espacio, trata ahora de esta forma:

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
 
$fp = file("op.txt", FILE_IGNORE_NEW_LINES);
$numero = 2450;
 
foreach($fp as $k=>$val){
    $numero2 =substr(stristr($val,'numero'),6); //extraigo el numero de las lineas que inician en numero
    if (is_numeric(trim($numero2))){//comprobacion
        echo ($numero>$numero2) ? $numero2.'</br>' : '' ;//evaluo y muestro los numeros menores 
    }
}
 
?>

Ahora use trim para eliminar el espacio.

Nos avisas como te fue.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Manipulacion archivo txt

Publicado por carlos (10 intervenciones) el 18/06/2016 00:38:01
al pnerlo completo el resultado es blanco pero si lo pongo hasta donde extrae las lines que contienen la palabra números si bota las líneas ue contienen esas palabras
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de kip
Val: 2.325
Plata
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Manipulacion archivo txt

Publicado por kip (877 intervenciones) el 18/06/2016 00:56:28
Si? Mira a mi me funciona, inclusive agregando mas lineas de numeros:

Screenshot_201

Prueba usando las clausula if en lugar del operador ternario:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
 
$fp = file("op.txt", FILE_IGNORE_NEW_LINES);
$numero = 2450;
 
foreach($fp as $k=>$val){
    $numero2 =substr(stristr($val,'numero'),6); //extraigo el numero de las lineas que inician en numero
    if (is_numeric(trim($numero2))){//comprobacion
        if($numero > $numero2){//evaluo y muestro los numeros menores
            echo $numero2.'</br>';
        }
    }
}
 
?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Manipulacion archivo txt

Publicado por carlos (10 intervenciones) el 18/06/2016 01:28:39
ya se pq no me salía era pq en mi txt tenia otros valores numérico mas tenia
numero 4254587 5200

pero ya lo solucione con tu ayuda solo agregue un explode con delimitador espacio creandi un array a donde me dice el valor y allí si me dio

muchísimas gracias por tu ayuda ;)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Manipulacion archivo txt

Publicado por carlos (10 intervenciones) el 19/06/2016 05:33:26
hola kid como estas gracias por toda la ayuda que riq saber si me podría ayudar con lo siguiente que seria el paso a seguir de llo antes ya publicado después de tener el resultado de todos los números menores al numero x quisiera saber cual de los numer menores es el mayor y ponerlo en una variable .
yo intente después de tener todo los números menores del txt meterlo en un implode con un delimitador para después crear otro array pero no me esta resultando e intentado de muchas forma pero no me da el resultado


muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de kip
Val: 2.325
Plata
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Manipulacion archivo txt

Publicado por kip (877 intervenciones) el 19/06/2016 05:59:03
Hola Carlos, puedes abrir un tema y colocar el código que tienes hasta ahora de como lo estas intentando hacer, de esa forma no se confunden las respuestas de cada duda, te parece?

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar