Programación General > C/C++

 Consulta trabajos con ficheros: Lectura de líneas

(1/2) > >>

yopicuo:
Hola, estoy iniciandome en esto de programar con c++, y necesito una ayudita.

Tengo un fichero de texto con la siguiente información:

14.4,24,14,34,    (Separador por "comas" : " , ")
15.5#25#15#35#                         (Separador por "almohadilla" : " # ")
16.6/26/16/36/                          (Separador por "barra" : " / ")

Bueno, el objetivo de la aplicación es leer esos valores e ir rellenando un array [3] [4]. Para ello debo ir leyendo línea por línea, sacando valores y volcándolos sobre la matriz.

Lo que he hecho hasta el momento es emplear la función getline() para leer toda la linea y asignarla a una variable string, y después emplear una pequeño algoritmo para ir leyendo la cadena y cogiendo fragmentos( leo hasta que encuentro un separador ) para convertirla a valor entero y finalmente asignarlo a una posición del array. PERO ESTO ES MUCHA LÍNEA DE CÓDIGO.

Quisiera saber como puedo hacer el proceso directamente, es decir, por ejemplo que vaya leyendo directamente la línea del fichero, y hasta un separador y ese valor lo asigne directamente a la posición en la matriz ya de tipo entero, sin necesidad de conversión. Y que finalizada esta operación lea el siguiente valor (de la misma línea) y repita el proceso.

Bueno, si alguien sabría indicarme como podría hacer esto, le agradecería que me lo comentara.
Un saludo y gracias.

AnimaSubtilis:
Pues hay una lobreria que te puede ser util...

fstrem...................

http://www.conclase.net/c/curso/index.php?cap=039

alli dice como funciona
voy a poner el codigo que medio me acuerdo...


--- Código: C++ --- fstram f;int matriz[3][4];//como se inicializa iria aca no me acuertoint i=0,j=0;while(!f.eof){ if(i==3)// algo asi para recorrer la matriz {  j++;  i=0; } mat[i][j] = atoi(f.gegtline(cadena,tam,';'));//f.getline(cadena a guardar,tamaño cadena,separador); y asi las n posiciones de la matriz}  
bueno no me acuerdo de mas y no tengo el dev aca en la empresa...

espero que sea de ayuda la medio medio medio guia  :P

jajaja


taluego.............

yopicuo:
AnimaSubtilis... muchas gracias.. eso es justo lo que necesitaba... y gracias por la web..
un saludo..

AnimaSubtilis:
oK de nadaassssssssssssss.....  :D

yopicuo:
AnimaSubtilis tengo un nuevo "dilema" a ver si me puedes ayudar...

A la hora de crear el archivo, en la aplicación debo pedir al usuario que especifique la unidad donde se creará, el nombre de la carpeta que lo contendrá y el propio nombre del archivo. Por el momento solo en conseguido hacerlo designando directamente toda la dirección en el nombre del fichero:
 ofstream FICHERO("C:\Carpeta\nombrearchivo.txt",tipo_fichero)

Pero claro, lo que he probado, (sin existo, tengo problemas al determinar los tamaños de las cadenas -aun no domino las sentencias-), es concatenar varias cadenas en una única, llamada "nombrearchio", de modo que el resultado sea el mimo que la linea anterior pero dejándola de la siguiente forma.  ofstream FICHERO(nombrearchivo,tipo_fichero).

Bueno, ¿cuál sería la forma correcta para realizar este tipo de operación a la hora de crear/abrir un fichero con extensión y nombre determinado?

Por otra parte, aun tengo que buscar a ver si en este foro ya se ha tratado antes, pero mientras tanto ¿cómo podría volcar los valores que tengo en el fichero TXT, en una tabla de un archivo excel y el proceso contrario obtener valores de una tabla excel y trabajar con ellos? (por lo poco que he leído la cuestión es trabajar con archivos .CSV , pero la verdad como que no lo entiendo muy bien.)

bueno un saludo y gracias...

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa