SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: johncapi en Miércoles 25 de Enero de 2012, 16:42

Título: Leer Fichero
Publicado por: johncapi en Miércoles 25 de Enero de 2012, 16:42
Hola a tod@s !!!

A ver tengo un problema para leer de fichero y no se como solucionarlo !!

Imaginen que en el fichero.txt tengo esto:
sad12### -34.5666xxxx 99.01 asdasd7asd

Pues como puedo hacer para extraer los numeros (double) tal que quede asi??!?!?
12.0, -34.5666, 99.01 y 7.0

No se como hacerlo, lo he intentando con el fgetc pero sin exito

A ver si me pueden echar una mano y gracias !!
Título: Re:Leer Fichero
Publicado por: johncapi en Miércoles 25 de Enero de 2012, 19:18
Por favor una ayuditaa !!! :ayuda: :ayuda:
He probado con fgetc(), con fscanf(), y intentado guardar la cadena con fgets() y luego tratarla, pero no hay manera !!
Alguna sugerencia ?? :think: :think:
Título: Re:Leer Fichero
Publicado por: ProfesorX en Jueves 26 de Enero de 2012, 21:45
Primero que nada, seria bueno saber si el archvo de texto tiene un formato predeterminado, o sea, si los datos estas separados por espacios, por comas, o siguen algun otro tipo de secuencia, eso facilitaria mucho las cosas.

Ahora, si el contenido del archivo es completamente aleatorio, es decir, que los datos no tienen un formato predeterminado, eso lo dificulta un poco, aun asi, no es imposible.

Como yo lo veo, el algoritmo que podrias seguir en caso de que los datos no tengan un formato predeterminado es:

1. Leer el caracter.
2. Comprobar si el caracter leido es un numero del 0 al 9, un punto (.) o un signo de menos (-)
3. En caso afirmativo, almacenar ese numero/punto/signo en un arreglo de char, y regresar al paso 1.
4. En caso negativo, descartar el caracter, convertir lo que haya almacenado en el arreglo de char y regresar al paso 1.
4. Repetir los pasos del 1 al 4 hasta que hayas leido todo el archivo.

Espero que eso te de una mejor idea de lo que debes hacer.

Saludos :)
Título: Re:Leer Fichero
Publicado por: johncapi en Sábado 28 de Enero de 2012, 13:07
Primero que nada, seria bueno saber si el archvo de texto tiene un formato predeterminado, o sea, si los datos estas separados por espacios, por comas, o siguen algun otro tipo de secuencia, eso facilitaria mucho las cosas.

Ahora, si el contenido del archivo es completamente aleatorio, es decir, que los datos no tienen un formato predeterminado, eso lo dificulta un poco, aun asi, no es imposible.

Como yo lo veo, el algoritmo que podrias seguir en caso de que los datos no tengan un formato predeterminado es:

1. Leer el caracter.
2. Comprobar si el caracter leido es un numero del 0 al 9, un punto (.) o un signo de menos (-)
3. En caso afirmativo, almacenar ese numero/punto/signo en un arreglo de char, y regresar al paso 1.
4. En caso negativo, descartar el caracter, convertir lo que haya almacenado en el arreglo de char y regresar al paso 1.
4. Repetir los pasos del 1 al 4 hasta que hayas leido todo el archivo.

Espero que eso te de una mejor idea de lo que debes hacer.

Saludos :)
Gracias por tu respuesta !!!
Voy a intentarlo como dices, a ver que tal sale !! :gracias: