Página 1 de 1

Buscador de contenido de archivos...

NotaPublicado: 2005-08-18 07:31 @355
por monoswim
Hola gente, tengo el siguiente buscador que me busca en el contenido de archivos que haya en un directorio...

abro el contenido del directorio, por cada archivo lo abre y lo coloca un un @array y luego busca en el con la función grep

my @ok = grep {/$input_data{'string'}/} @lines;

Pero no se si será mejor hacer un while para no cargar todo el archivo en memoria e ir evaluando cada una de las líneas...

while (my $line = <DATA>)

Que me recomiendan ?
Los archivos son del tipo XML y tendrán aproximadamente unas 50 líneas...Y en cada directorio habrá unos 20 artículos...

Saludos

NotaPublicado: 2005-08-18 07:50 @368
por kidd
Hola:

Ni siquiera tienes que hacer el while, has el grep directamente con el archivo:

Código: Seleccionar todo
my @ok = grep {/$input_data{'string'}/} <DATA>;



SALUDOS

NotaPublicado: 2005-08-18 09:27 @436
por monoswim
:oops: :oops: :oops: :oops:

jeje, no se me había ocurrido esa solucion...De perlas !!!

Oye kidd, con lo de File::Find tuve el mismo problema que con mi función, reinicié el apache y problema resuelto...jeje así que sigo sin usar módulos...jajaja

Saludos y mil gracias !!!!

NotaPublicado: 2005-08-18 11:49 @534
por kidd
monoswim escribiste:Oye kidd, con lo de File::Find tuve el mismo problema que con mi función, reinicié el apache y problema resuelto...jeje así que sigo sin usar módulos...jajaja


Aun así, te recomiendo que uses mejor el File::Find, es mucho más rápido. :wink:


SALUDOS

NotaPublicado: 2005-08-21 11:31 @521
por Joaquin
¿Puedes poner un ejemplo del fichero XML y de lo que necesitas buscar?

NotaPublicado: 2005-08-22 09:16 @428
por monoswim
Pues el XML es del tipo

<articulo></...>
<titulo></...>
<descripción></...>
<texto></...>

Y busco la info por ahí, creo que lo de grep es más rápido que parcear el XML...verdad?

Saludos

NotaPublicado: 2005-08-22 10:11 @466
por Perl user
monoswim escribiste:Pues el XML es del tipo

<articulo></...>
<titulo></...>
<descripción></...>
<texto></...>

Y busco la info por ahí, creo que lo de grep es más rápido que parcear el XML...verdad?

Saludos


Pues la especificación del XML no la veo muy completa, y no, todo depende, grep recuerda que genera listas en memoria, generar una lista del tamaño de tu archivo quizas no sea lo mas eficiente, por otro lado, si usas SAX para parsear tu archivo XML puede ser muy rápido, pero si el archivo es muy pequeño construir un arbol DOM con XML::LibXML podría ser muy rápido también.

Saludos,

PD. Aun no entiendo bien tu problema, y tampoco tengo muy claro todo lo que quieres hacer, podrías ser mas explícito?

NotaPublicado: 2005-08-23 07:29 @353
por monoswim
El problema que tenía ya lo solucioné con la respuesta de KIDD, simplemente tengo un sistema que almacena la info en unos XML en vez de en un mysql, y ahora le hice un módulo buscar que abre dichos archivos y busca en su contenido...

Pero dejen, ya lo tengo funcionando y va de perlas !!!

Gracias a todos !!!