• Publicidad

Buscador de contenido de archivos...

Así que programas sin strict y las expresiones regulares son otro modo de hablar. Aquí encontrarás respuestas de nivel avanzado, no recomendable para los débiles de corazón.

Buscador de contenido de archivos...

Notapor monoswim » 2005-08-18 07:31 @355

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
MonoSwim
Perl Programming Language
Avatar de Usuario
monoswim
Perlero nuevo
Perlero nuevo
 
Mensajes: 452
Registrado: 2003-11-18 16:13 @717
Ubicación: Buenos Aires

Publicidad

Notapor kidd » 2005-08-18 07:50 @368

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
Uriel Lizama Perl programmer fundador de Perl en Español
Perl Programming Language
Avatar de Usuario
kidd
Creador de Perl en Español
Creador de Perl en Español
 
Mensajes: 1166
Registrado: 2003-10-15 16:52 @744
Ubicación: México

Notapor monoswim » 2005-08-18 09:27 @436

: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 !!!!
MonoSwim
Perl Programming Language
Avatar de Usuario
monoswim
Perlero nuevo
Perlero nuevo
 
Mensajes: 452
Registrado: 2003-11-18 16:13 @717
Ubicación: Buenos Aires

Notapor kidd » 2005-08-18 11:49 @534

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
Uriel Lizama Perl programmer fundador de Perl en Español
Perl Programming Language
Avatar de Usuario
kidd
Creador de Perl en Español
Creador de Perl en Español
 
Mensajes: 1166
Registrado: 2003-10-15 16:52 @744
Ubicación: México

Notapor Joaquin » 2005-08-21 11:31 @521

¿Puedes poner un ejemplo del fichero XML y de lo que necesitas buscar?
Joaquin
 

Notapor monoswim » 2005-08-22 09:16 @428

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
MonoSwim
Perl Programming Language
Avatar de Usuario
monoswim
Perlero nuevo
Perlero nuevo
 
Mensajes: 452
Registrado: 2003-11-18 16:13 @717
Ubicación: Buenos Aires

Notapor Perl user » 2005-08-22 10:11 @466

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?
Marco A. Manzo
[email protected]
http://www.unixmonkeys.com/amnesiac/
Perl Programming Language
Perl user
Maestro honorario
Maestro honorario
 
Mensajes: 271
Registrado: 2004-11-03 21:11 @924

Notapor monoswim » 2005-08-23 07:29 @353

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 !!!
MonoSwim
Perl Programming Language
Avatar de Usuario
monoswim
Perlero nuevo
Perlero nuevo
 
Mensajes: 452
Registrado: 2003-11-18 16:13 @717
Ubicación: Buenos Aires


Volver a Avanzado

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados