• Sábado 14 de Diciembre de 2024, 13:46

Autor Tema:  Consulta trabajos con ficheros: Lectura de líneas  (Leído 2239 veces)

yopicuo

  • Nuevo Miembro
  • *
  • Mensajes: 5
  • Nacionalidad: es
    • Ver Perfil
Consulta trabajos con ficheros: Lectura de líneas
« en: Lunes 26 de Octubre de 2009, 21:42 »
0
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.
« última modificación: Martes 27 de Octubre de 2009, 16:13 por yopicuo »

AnimaSubtilis

  • Miembro MUY activo
  • ***
  • Mensajes: 172
  • Nacionalidad: co
    • Ver Perfil
Re: Consulta trabajo con ficheros: Lectura de líneas
« Respuesta #1 en: Lunes 26 de Octubre de 2009, 22:05 »
0
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++
  1.  
  2. fstram f;
  3. int matriz[3][4];
  4. //como se inicializa iria aca no me acuerto
  5. int i=0,j=0;
  6. while(!f.eof)
  7. {
  8.  if(i==3)// algo asi para recorrer la matriz
  9.  {
  10.   j++;
  11.   i=0;
  12.  }
  13.  mat[i][j] = atoi(f.gegtline(cadena,tam,';'));//f.getline(cadena a guardar,tamaño cadena,separador);
  14.  y asi las n posiciones de la matriz
  15. }
  16.  
  17.  

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.............
A menudo unas pocas horas de «prueba y ensayo» podrán ahorrarte minutos de leer manuales.
[size=150]
Dios nos Otorgo el uno y el cero....y con eso creamos un universo....[/size]

[size=109]↑°°°°ÄNÍMÄ §ÛBTÍLͧ°°°°↓[/size]


yopicuo

  • Nuevo Miembro
  • *
  • Mensajes: 5
  • Nacionalidad: es
    • Ver Perfil
Re: Consulta trabajo con ficheros: Lectura de líneas
« Respuesta #2 en: Lunes 26 de Octubre de 2009, 23:09 »
0
AnimaSubtilis... muchas gracias.. eso es justo lo que necesitaba... y gracias por la web..
un saludo..

AnimaSubtilis

  • Miembro MUY activo
  • ***
  • Mensajes: 172
  • Nacionalidad: co
    • Ver Perfil
Re: Consulta trabajo con ficheros: Lectura de líneas
« Respuesta #3 en: Lunes 26 de Octubre de 2009, 23:27 »
0
oK de nadaassssssssssssss.....  :D
A menudo unas pocas horas de «prueba y ensayo» podrán ahorrarte minutos de leer manuales.
[size=150]
Dios nos Otorgo el uno y el cero....y con eso creamos un universo....[/size]

[size=109]↑°°°°ÄNÍMÄ §ÛBTÍLͧ°°°°↓[/size]


yopicuo

  • Nuevo Miembro
  • *
  • Mensajes: 5
  • Nacionalidad: es
    • Ver Perfil
Re: Consulta trabajos con ficheros: Lectura de líneas
« Respuesta #4 en: Martes 27 de Octubre de 2009, 16:35 »
0
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...

AnimaSubtilis

  • Miembro MUY activo
  • ***
  • Mensajes: 172
  • Nacionalidad: co
    • Ver Perfil
Re: Consulta trabajos con ficheros: Lectura de líneas
« Respuesta #5 en: Martes 27 de Octubre de 2009, 20:44 »
0
Bueno lo primero se hace mediante la funcion

strcat de la libreria string.h

http://www.conclase.net/c/librerias/funcion.php?fun=strcat

hay ta como funciona...

y lo de excel esa seria una forma guardar el archivo como .csv.. generalmente espero no equivocarme
es un archivo plano separado en lo general por ; (punto y coma)...  

para lo primero por ejemplo en dev c que es el que manejo cuando programo en c existe la clase string.... en la cual puedes hacer algo asi

Código: C++
  1.  
  2.  string pal,ax,ax1;
  3.  ax = "c:\prueba";
  4.  ax1 = "\archivo.txt";
  5.  pal = ax+ax1;
  6.  
  7.  

algo asi, de esta manera seria mas facil concatenar las palabras..........

bueno espero que sea lo que nescesitas...

taluego.................
A menudo unas pocas horas de «prueba y ensayo» podrán ahorrarte minutos de leer manuales.
[size=150]
Dios nos Otorgo el uno y el cero....y con eso creamos un universo....[/size]

[size=109]↑°°°°ÄNÍMÄ §ÛBTÍLͧ°°°°↓[/size]


yopicuo

  • Nuevo Miembro
  • *
  • Mensajes: 5
  • Nacionalidad: es
    • Ver Perfil
Re: Consulta trabajos con ficheros: Lectura de líneas
« Respuesta #6 en: Martes 27 de Octubre de 2009, 22:14 »
0
AnimaSubtítulis, si tuviera dinero te contrataría como tutor personal.. gracias..  :D

me he dado cuenta de que no había precargado la librería <string.h> (ni tampoco la cstring.h, por si acaso que también contiene la función strcat) y seguramente fuese por eso por lo que no conseguía concatenar... fallo por mi parte..

bueno para no volver a estar preguntando dudas, sobre cosas que tienen respuesta mediante funciones me he metido en w.cplusplus.com/reference/ que ahí vienen la mayoría de funciones e intentaré apañármelas con eso.. y sí no queda mas remedio pues preguntaré por aquí..

nuevamente un saludo y gracias por la ayuda prestada..

AnimaSubtilis

  • Miembro MUY activo
  • ***
  • Mensajes: 172
  • Nacionalidad: co
    • Ver Perfil
Re: Consulta trabajos con ficheros: Lectura de líneas
« Respuesta #7 en: Martes 27 de Octubre de 2009, 22:20 »
0
:D  Siempre a la orden y con mucho gusto de ayudar..............
 :hola:

taluego...........
A menudo unas pocas horas de «prueba y ensayo» podrán ahorrarte minutos de leer manuales.
[size=150]
Dios nos Otorgo el uno y el cero....y con eso creamos un universo....[/size]

[size=109]↑°°°°ÄNÍMÄ §ÛBTÍLͧ°°°°↓[/size]


alex1510

  • Miembro activo
  • **
  • Mensajes: 35
    • Ver Perfil
Re: Consulta trabajos con ficheros: Lectura de líneas
« Respuesta #8 en: Miércoles 28 de Octubre de 2009, 17:32 »
0
hola buenas.
Me gustaria que alguien me ayudara con un proyecto que tengo y lo veo demasiado para mi (soy electronico). Estaría dispuesto a contratarte y a negociar el dinero. O si conoces a alguien que estuviera dispuesto a ayudarme. Básicamente es para tratar ficheros. Un saludo