Comunidad de diseño web y desarrollo en internet online

busqueda en archivos de texto con php

Citar            
MensajeEscrito el 31 May 2011 03:14 am
Hola a todos y gracias por leer este mensaje.

Hay un trabajo que estoy haciendo con arboles B, y ya lo termine, lo malo es que tengo que escribir y buscar los datos en un archivo de texto. Ya escribo en el archivo, tambien ya lo puedo leer, pero tengo problemas para ir a la linea donde encontre el dato que busco. Es decir ... tengo esto en un archivo de texto

ITEM NOMBRE REFERENCIA
1 Jose Ir a linea 12
2 Maria Ir a linea 52
...
52 Marcos Ir a linea 30

Es como crear una cadena de amigos, una vez que encuentro el nombre de la persona que quiero tengo que salta a la linea que me dice para extraer el nombre, y de ahi saltar nuevamente a la linea que me dice para repetir el proceso nuevamente.

No encuentro un funcion en la que pueda decirle: del archivo tal ... ir a la linea 52, del archivo tal ... ir a la linea 30.

Alguien me pudiera ayudar en eso? existe alguna funcion que haga esto? algo asi como el goto, pero que fucione para archivos de texto.

estuve viendo esta forma:

function IrALinea($i)
{
$archivo = $this->cArchivo;
$linea = "";
if ($fp = fopen($archivo,"r"))
{
for($j=0; $j<$i; $j++)
{ $linea = fgets($fp); }
fclose($fp);
}
return $linea;
}

pero si veran, a las finales esto recorre linea por linea, y no salta entre lineas, hay alguna funcion que haga lo que quiero?

Gracias de antemano.

Por anghelous

0 de clabLevel



 

firefox
Citar            
MensajeEscrito el 31 May 2011 12:37 pm
Los archivos de texto no admiten lectura aleatoria. Solamente secuencial.
Te quedan dos opciones: usar una base de datos, que es la solución ideal. O bién usar archivos binarios y recurrir a la función fseek() de PHP, pero claro que tendrás que hacer aritmética de bytes.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 31 May 2011 05:06 pm
pero al momento de encontrar lo que buscas, el hecho de buscar, ya estas leyendo secuencialmente el archivo pues en esa busqueda almacena en que caracter encontro el resultado y ese mimo dato lo usas para fseek como te comentaron , seria bueno que meustres cual es tu codigoq ue tienes hasta ahora

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.