• Jueves 14 de Noviembre de 2024, 23:15

Autor Tema:  Ayuda Sobre Los Ficheros. Urgente!!  (Leído 1556 veces)

superismago

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Ayuda Sobre Los Ficheros. Urgente!!
« en: Viernes 13 de Agosto de 2004, 12:32 »
0
Hola, mi problema es el siguiente:  :comp:

Estoy haciendo un simulador de memorias caché multiprocesador en borland c++ 3.1 y para esto necesito procesar ficheros de miles de lineas. Pues bien, mi aplicación finaliza en la línea 9482 sea cual sea el fichero que utilice (por supuesto con mas de 9482 líneas).
Yo pienso que puede ser por el buffer que se utiliza al trabajar con ficheros, pero he intentado aumentarle el tamaño o simplemente no utilizarlo y nada de nada.
Los ficheros que utilizo son de tipo FSTREAM aunque para intentar lo del buffer los cambié a FILE. Con FSTREAM no se como se hace lo del buffer.

Agradecería que alguien me ayudara ya que me urge resolver este problema
Gracias y un saludo.

nicokiki

  • Miembro MUY activo
  • ***
  • Mensajes: 298
    • Ver Perfil
Re: Ayuda Sobre Los Ficheros. Urgente!!
« Respuesta #1 en: Viernes 13 de Agosto de 2004, 14:40 »
0
Hola!!!!!!!!!!!

Pero vos metes todas esas lineas en un buffer de una sola vez???

Salu2!!!!!!!!

superismago

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: Ayuda Sobre Los Ficheros. Urgente!!
« Respuesta #2 en: Lunes 16 de Agosto de 2004, 21:57 »
0
Hola.
En el buffer del fichero no se cuantas líneas se meterán porque como he comentado le he puesto diversos tamaños pero siempre ocurre lo mismo.

En el buffer de mi aplicación meto como máximo 700 lineas, ya que si le pongo mas se me queda sin memoria. Voy introduciendo 700 líneas sucesivamente hasta que se acaba el fichero.
Podría leer directamente cada línea del fichero y procesarla pero se ralentizaría la aplicación.

Saludos.

nicokiki

  • Miembro MUY activo
  • ***
  • Mensajes: 298
    • Ver Perfil
Re: Ayuda Sobre Los Ficheros. Urgente!!
« Respuesta #3 en: Lunes 16 de Agosto de 2004, 22:16 »
0
Hola!!!!!!!!!!!

Lo + logico seria q leas una linea por vez usando por ejemplo fgets() hasta el feof() y listo. Vos no podes meter todo en un buffer de una sola vez porque no sabes de antemano la cantidad de lineas q tiene el archivo => seria una locura meter MB y MB y MB en un buffer.
Algo asi hace: (codigo sin correccion)
Código: Text
  1.  
  2. while(!feof(archivo))
  3. {
  4.   fgets(archivo, buffer, );
  5.   hacerAlgoConBuffer();
  6. }
  7.  
  8.  

Salu2!!!!

superismago

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: Ayuda Sobre Los Ficheros. Urgente!!
« Respuesta #4 en: Martes 17 de Agosto de 2004, 19:32 »
0
Hola, el problema de leer una linea cada vez es que la aplicación se hace más lenta y no quiero que esto ocurra.
Solo meto 700 lineas de 12 caracteres de longitud en un buffer estatico.
Cuando este se acaba, vuelvo a introducir otras 700 lineas.
No es tan grande el contenido del buffer.

Estoy perdido, perdido, pero gracias de todas formas.
Seguire intentándolo.

Gracias