Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 

Buscador de contenido de archivos...

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Experto
Mensaje Jue Ago 18, 2005 6:31 am
monoswim
Vive para Perl en Español
Vive para Perl en Español
Registrado: 18 Nov 2003
Mensajes: 716
Ubicación: Buenos Aires
Buscador de contenido de archivos... Responder citando

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
Mensaje Jue Ago 18, 2005 6:50 am
kidd
Creador de Perl en Español
Creador de Perl en Español
Registrado: 15 Oct 2003
Mensajes: 1389
Ubicación: México
Responder citando

Hola:

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

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



SALUDOS
Mensaje Jue Ago 18, 2005 8:27 am
monoswim
Vive para Perl en Español
Vive para Perl en Español
Registrado: 18 Nov 2003
Mensajes: 716
Ubicación: Buenos Aires
Responder citando

Embarassed Embarassed Embarassed Embarassed

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 !!!!
Mensaje Jue Ago 18, 2005 10:49 am
kidd
Creador de Perl en Español
Creador de Perl en Español
Registrado: 15 Oct 2003
Mensajes: 1389
Ubicación: México
Responder citando

monoswim escribió:
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


Aún así, te recomiendo que uses mejor el File::Find, es mucho más rápido. Wink


SALUDOS
Mensaje Dom Ago 21, 2005 10:31 am
Joaquin
Perlero Nuevo
Perlero Nuevo
Registrado: 13 Ago 2005
Mensajes: 12
Ubicación: Valladolid, España
Responder citando

¿Puedes poner un ejemplo del fichero XML y de lo que necesitas buscar?
Mensaje Lun Ago 22, 2005 8:16 am
monoswim
Vive para Perl en Español
Vive para Perl en Español
Registrado: 18 Nov 2003
Mensajes: 716
Ubicación: Buenos Aires
Responder citando

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
Mensaje Lun Ago 22, 2005 9:11 am
Perl user
Maestro Honorario
Maestro Honorario
Registrado: 03 Nov 2004
Mensajes: 385
Responder citando

monoswim escribió:
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?
Mensaje Mar Ago 23, 2005 6:29 am
monoswim
Vive para Perl en Español
Vive para Perl en Español
Registrado: 18 Nov 2003
Mensajes: 716
Ubicación: Buenos Aires
Responder citando

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 !!!
Publicar nuevo tema   Responder al tema    Foros de discusión -> Experto Todas las horas son GMT - 6 Horas
Página 1 de 1



Powered by phpBB © 2001, 2005 phpBB Group