[ Foro de Pascal ]

Leer desde fichero...

08-Mar-2007 12:49
Homer A. Ramos
5 Respuestas

Hola, espero que me podáis ayudar con la duda que me ha surgido.

Os pongo en situación, estoy leyendo un fichero que está compuesto por estos datos:

mi fichero se llama: datos1.dat
________
1
4
1 10 2
2 1 3
4 5 6
3 4 5
1 1 2
________

El contenido de mi fichero son todos esos número que véis ahí y están dispuestos en esa forma. Las dos primeras lineas solo tienen un dato y las siguientes están compuestas por tres "columnas" de numeros, separadas cada una por un espacio.

Pues bien, mi duda es que quiero leerlo y:
- la primera fila guardarla en una variable llamada: indice
- la segunda en unna variable: vertice
- a partir de ahi quiero ir guardándolas en variables: i, j ,k.

Me podéis ayudar???? es que lo he intentado de mil maneras y NO recojo correctamente los datos debido a que las dos primeras lineas no son del mismo "tamaño" que a partir de la tercera.

Muchas Gracias!

08-Mar-2007 13:48
Taisen Tetsu

pues si lo abres en modo texto vendria a ser:

fscanf(&indice,"%d",fichero);
para el primero, igual para el segundo y luego lo demas en un
while(!feof(fichero))
fscanf(&i,&j,&k,"%d %d %d",fichero);

y ya esta, puede que haya algun error de sintaxis pork hace tiempo que no uso esto pero vendria a ser eso.

y si es en binario igual pero con

fread(fichero,1,4,indice) para los k van solos y dentro del while metemos 3 freads iguales uno i uno j y uno k y apañados aunque sobrarian los espacios en el fichero, tal como sale ahi yo lo abriria en modo texto.

un saludo

08-Mar-2007 14:15
Homer A. Ramos

Dios! que tonto soy!

jejee, te lo agradezco enormemente Taisen Tetsu, lo que me ocurría es que tenía el while not eof(fich) al principio y claro, asi no me iba correctamente. Gracias a tu explicacion he abierto los ojos jejjee.

Muchas gracias, ya está solucionado, solo era eso, sacar el codigo de indice y vertice para fuera (fuera del while not eof...).

Gracias!!!

08-Mar-2007 18:28
Nacho Cabanes (+84)

La respuesta que te ha dado Taisen es con la sintaxis de C, así que tendrás que cambiar los "fscanf" por "read", y el "!feof" por "not eof", pero veo que aun así te ha servido la idea ;-)


08-Mar-2007 18:52
Homer A. Ramos

Si, jejeje. Es que desde que vi el while debajo del scanf se me abrieron los ojos!!! :D La verdad es que no conozco el lenguaje C pero lo intuí rápidamente jejeje.

Muchas gracias por la ayuda! La verdad es que foros así ayudan mucho cuando alguien, como yo, tiene la respuesta en las narices pero no es capaz de verla jejeje.


08-Mar-2007 21:41
Taisen Tetsu

anda jajaja no me he fijado que era el foro de pascal xd me ha llegado el maily le e dado a responder directamente xD pero si ha servido bien xD






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)