Foros del Web » Programando para Internet » PHP »

leer líneas fseek

Estas en el tema de leer líneas fseek en el foro de PHP en Foros del Web. hola, tengo un fichero con líneas de texto y quiero seleccionar alguna al azar para leerla entera y mostrarla: Estoy mirando pero con el fseek ...
  #1 (permalink)  
Antiguo 29/11/2005, 10:04
 
Fecha de Ingreso: noviembre-2005
Mensajes: 40
Antigüedad: 12 años
Puntos: 0
leer líneas fseek

hola, tengo un fichero con líneas de texto y quiero seleccionar alguna al azar para leerla entera y mostrarla: Estoy mirando pero con el fseek no consigo hacer del todo lo que quiero. Alguien sabe de alguna otra funcion para leer lineas de un fichero. Venga gracias
  #2 (permalink)  
Antiguo 29/11/2005, 10:23
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
En principio .. si leyeses tu archivo sobre un array (como file() por ejemplo te lo entregará directamente) podrías luego usar las funciones de array's (arreglos, matrizes...) para acceder a los elementos que quieras u operar en general con ese archivo. Recuerda que un archivo de texto plano es de lectura "secuencial".

De todas formas ... en la documentación oficial de fseek() veras alternativas para leer líneas de un archivo de texto plano como por ejemplo:
Cita:
Lutz ( l_broedel at gmx dot net )
15-Feb-2005 12:25
Based on the function below, provided by info at o08 dot com (thanks), the following should enable you to read a single line from a file, identified by the line number (starting with 1):

Código PHP:
<?
   
function readLine ($linenum,$fh) {
       
$line fgets ($fh4096);
       
$pos = -1;
       
$i 0;

       while (!
feof($fh) && $i<($linenum-1)) {
           
$char fgetc($fh);
           if (
$char != "\n" && $char != "\r") {
               
fseek($fh$posSEEK_SET);
               
$pos ++;
           }
           else 
$i ++; 
       }
       
$line fgets($fh);
       return 
$line;
   } 
//readLine()
?>
www.php.net/file
www.php.net/fseek

Un saludo,
  #3 (permalink)  
Antiguo 01/12/2005, 13:33
 
Fecha de Ingreso: noviembre-2005
Mensajes: 40
Antigüedad: 12 años
Puntos: 0
gracias. Parece que me funciona, aunque a veces no muestra nada, me parece que debe ser por el salto de carro porque el fichero no tiene huecos ni espacion entre lineas. Gracias de nuevo.
  #4 (permalink)  
Antiguo 01/12/2005, 13:35
 
Fecha de Ingreso: noviembre-2005
Mensajes: 40
Antigüedad: 12 años
Puntos: 0
conseguido, quitando la segunda condicion del while.
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 20:53.