Buscar información en archivo plano

09/02/2005 - 22:16 por Juan Carlos S | Informe spam
Hola a todos
Ultimamente estoy como que muy pregunton

Bueno, yo tengo un programa que realiza búsquedas de
información sobre archivos planos

La búsqueda es secuencial, y aunque se encuentra la info
en ocaciones el proceso se hace demasiado lento, y tarda
demasiado en encontrar las cosas

De verdad quiero mejorar el proceso, no puedo usar xml,
ya que la infraestuctura no me lo permite

Una posible forma seria mediante archivos aleatorios,
pero según lo que entiendo estos requieren de longitudes
fijas , y los archivos de texto que yo manejo no se
caracterizan por esto, son completamente variables

Bueno estoy buscando ayuda de como mejorar mi proceso de
búsqueda, y así no tener tantos periodos de espera para
los usuarios

Estoy usando VB.net

Pero realmente lo que menos me importa es el lenguaje, lo
que realmente deseo es buscar la solución mas adecuada a
mi problema

Un saludo

Juan Carlos
 

Leer las respuestas

#1 Octavio Hernandez
09/02/2005 - 23:29 | Informe spam
JC,

- Primero te recomendaría no hacer la búsqueda leyendo los ficheros línea a
línea, sino trayendo de golpe a memoria bloques grandes de cada documento
(si es posible, el documento entero). Podrías usar para ello por ejemplo la
clase MemoryStream de .NET.
http://msdn.microsoft.com/library/d...stopic.asp

Intenta optimizar por esta vía. Si lo que obtienes no es suficiente,
entonces el siguiente paso podría ser:

- Segundo, no hacer la búsqueda utilizando los mecanismos tradicionales
(como las funciones de cadenas de la librería de .NET), sino algún algoritmo
especializado para la búsqueda en cadenas grandes, como Boyer-Moore o
Rabin-Karp. Aquí he encontrado un enlace a una implementación de
Boyer-Moore:
http://www.gotdotnet.com/Community/...9c61add085

Por supuesto, te haría falta algún libro o enlace sobre la teoría de esos
algoritmos (no son tan complicados!). Por ejemplo, podrías empezar aquí:

http://es.wikipedia.org/wiki/Algori..._en_textos

Slds - Octavio

"Juan Carlos S" escribió en el mensaje
news:277b01c50eec$a4b2a910$
Hola a todos
Ultimamente estoy como que muy pregunton

Bueno, yo tengo un programa que realiza búsquedas de
información sobre archivos planos

La búsqueda es secuencial, y aunque se encuentra la info
en ocaciones el proceso se hace demasiado lento, y tarda
demasiado en encontrar las cosas

De verdad quiero mejorar el proceso, no puedo usar xml,
ya que la infraestuctura no me lo permite

Una posible forma seria mediante archivos aleatorios,
pero según lo que entiendo estos requieren de longitudes
fijas , y los archivos de texto que yo manejo no se
caracterizan por esto, son completamente variables

Bueno estoy buscando ayuda de como mejorar mi proceso de
búsqueda, y así no tener tantos periodos de espera para
los usuarios

Estoy usando VB.net

Pero realmente lo que menos me importa es el lenguaje, lo
que realmente deseo es buscar la solución mas adecuada a
mi problema

Un saludo

Juan Carlos

Preguntas similares