elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Buscar string en un archivo, y obtener datos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Buscar string en un archivo, y obtener datos  (Leído 5,833 veces)
emma1990

Desconectado Desconectado

Mensajes: 2



Ver Perfil
Buscar string en un archivo, y obtener datos
« en: 21 Marzo 2011, 20:02 pm »

Hola!

No me vendría mal un poco de ayuda con un programa que estoy haciendo ;D.

La historia consiste en que el programa abra un archivo de texto y busque una cadena, grabando lo que hay después de la cadena a otro archivo de texto.

Es decir, que si en el archivo input.txt hay esto: "blablabla nombre emma blablabla", obtenga un output.txt con el contenido "emma".

Soy bastante principiante en esto, pero sí sé abrir y cerrar archivos. Donde necesitaría ayuda es con lo demás

Alguna idea?

Gracias de antemano!  :laugh:


En línea

El_Java

Desconectado Desconectado

Mensajes: 144



Ver Perfil WWW
Re: Buscar string en un archivo, y obtener datos
« Respuesta #1 en: 21 Marzo 2011, 22:44 pm »

Mira en esta página de la wikipedia con info sobre el string.h :P
http://es.wikipedia.org/wiki/String.h
Si quieres más información busca en la pagina de cplusplus (buscalo asi en google), y coloca en el buscador de la pagina el nombre de la funcion que quieras (esta en ingles todo)


En línea

emma1990

Desconectado Desconectado

Mensajes: 2



Ver Perfil
Re: Buscar string en un archivo, y obtener datos
« Respuesta #2 en: 21 Marzo 2011, 23:16 pm »

Hola El_java, gracias por contestar!  :D
he visto esas funciones, pero el problema es que necesito orientarlo a lectura de archivos. En concreto, tengo que manejar archivos de varios cientos de kb..  :-\
En línea

Akai


Desconectado Desconectado

Mensajes: 823



Ver Perfil
Re: Buscar string en un archivo, y obtener datos
« Respuesta #3 en: 21 Marzo 2011, 23:34 pm »

Si la velocidad es un factor crítico, te puedo sugerir que utilices mapeo en memoria.

Tienes mmap para linux:
http://linux.die.net/man/2/mmap

Y en windows el equivalente, si no me equivoco es CreateFileMapping:
http://msdn.microsoft.com/en-us/library/aa366537(v=VS.85).aspx

Únicamente puedo hablar del mmap de linux, que es el que he usado, y para ficheros grandes, se suele experimentar una ganancia en la lectura. Ya que en vez de ir leyendo el fichero a bloques lo transportas a memoria de una, y luego lo recorres como si se tratase de una CADENA. No es algo que aconseje a alguien que está empezando.

Recalco lo de tratarlo como una cadena, porque eso te permite acceder al elemento que quieras, cuando quieras, Por tanto, si tu buscas un patrón en un texto (suponiendo que buscas un único patrón), después de mapear el fichero, se me ocurre que puedas recorrerlo del tirón buscando la primera letra de tu patrón, que la encuentras, compruebas si después está la segunda, que no? sigues.

Respecto a la velocidad... el uso que yo le he llegado a dar es leer 92 archivos de entre 1.5 y 2 MB cada uno, y pasar su contenido a una matriz (leía como texto, y luego pasaba a número, y no lo podía mapear directamente como números por tratarse de un fichero de texto, no binario)
189 MB en 2 segundos con mi portátil (pentium T4300)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines