Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Escribir en un fichero csv

Estas en el tema de Escribir en un fichero csv en el foro de C/C++ en Foros del Web. Hola buenos dias soy nuevo así que disculpen si este tema no va aquí, creo que si, o si hago algo mal prometo aprender rápido ...
  #1 (permalink)  
Antiguo 11/11/2010, 05:06
 
Fecha de Ingreso: noviembre-2010
Mensajes: 4
Antigüedad: 13 años, 5 meses
Puntos: 0
Escribir en un fichero csv

Hola buenos dias soy nuevo así que disculpen si este tema no va aquí, creo que si, o si hago algo mal prometo aprender rápido para que no vuelva a ocurrir.
Mi duda es la siguiente, tengo un programa que hace una serie de calculos y mi problema es que tengo que escribir el resultado en un archivo .csv
me creo el archivo bien y todo eso pero mi problema es que no se separar en columnas los distintos valores con sus respectivas etiquetas, es decir, todo lo que escribo me sale en la primera columna, para cambiar de fila no tengo problemas, es solo para las columnas.
Agradeceria cualquier tipo de ayuda porque la verdad es que me corre un poco de prisa.
Gracias por adelantado y saludos a todos.
  #2 (permalink)  
Antiguo 11/11/2010, 06:28
 
Fecha de Ingreso: junio-2010
Ubicación: Charlotte, NC
Mensajes: 611
Antigüedad: 13 años, 10 meses
Puntos: 95
Respuesta: Escribir en un fichero csv

Estas escribiendo el separado por comas entre comillas?
Por ejemplo
"columna1","columna2","columna3"
"elem1","elem2","elem3"

etc..

se generan archivos mas grandes, pero siempre es recomendado que utilices las " " cuando generas archivos separados por comas, asi evitas errores de que todo se quede atascado en una columna.
  #3 (permalink)  
Antiguo 11/11/2010, 09:22
 
Fecha de Ingreso: noviembre-2010
Mensajes: 4
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Escribir en un fichero csv

Te pongo el fragmento de codigo porque no se exactamente a que te refieres.

for(a=0;a<(number+1);a++){
fprintf(g,"Number: %d Value: %d Decimal time:%f\n",a,sol[a].value,sol[a].time);
}

esto es lo que tengo para imprimir.
Es C.
¿Como hago para cambiar de columnas?

Gracias por la respuesta
  #4 (permalink)  
Antiguo 11/11/2010, 09:23
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Escribir en un fichero csv

Solamente agregar que cualquier " que deba ir incluida en el valor debe ir doble:

"Hola", "tengo una comilla: "" :)"


Edito luego de ver tu respuesta:
CSV = Comma Separated Values = Valores separados por coma

No estás separando los valores con comas
  #5 (permalink)  
Antiguo 11/11/2010, 09:27
 
Fecha de Ingreso: noviembre-2010
Mensajes: 4
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Escribir en un fichero csv

Pero donde debo escribir las comas, me podeis aconsejar porque ahora mismo estoy un poco perdido con esto
  #6 (permalink)  
Antiguo 11/11/2010, 09:32
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Escribir en un fichero csv

Si vos querés que el Excel lo abra y lo muestre como tabla:
Código:
uno	dos	tres	cuatro
cinco	seis	siete	ocho
Tu archivo CSV (de nuevo: Valores Separados por Coma) debe ser
Código:
uno,dos,tres,cuatro
cinco,seis,siete,ocho
Con la recomendación de AlanChavez de poner los valores entrecomillados para evitar inconvenientes si alguno de ellos contiene una coma.
  #7 (permalink)  
Antiguo 11/11/2010, 09:36
 
Fecha de Ingreso: noviembre-2010
Mensajes: 4
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Escribir en un fichero csv

Cita:
Iniciado por AlvaroG Ver Mensaje
Si vos querés que el Excel lo abra y lo muestre como tabla:
Código:
uno	dos	tres	cuatro
cinco	seis	siete	ocho
Tu archivo CSV (de nuevo: Valores Separados por Coma) debe ser
Código:
uno,dos,tres,cuatro
cinco,seis,siete,ocho
Con la recomendación de AlanChavez de poner los valores entrecomillados para evitar inconvenientes si alguno de ellos contiene una coma.
Vale no se si es que no me explico o no me entendeis, seguramente sea lo primero.
Vamos por partes, me habeis dicho que tengo que poner comas vale eso lo he entendido bien, mi pregunta es donde debo ponerlas, en la parte que va entre comillas del print o a la hora de poner las variables que se tienen que colocar.
Si veis que es mas facil explicarmelo podeis coger mi codigo y hacerlo el cambio ahí mismo.
Agradezco las respuestas.
Saludos.

Edito ya he encontrado la solucion es poner punto y coma (;) no coma solo
gracias por vuestra ayuda y siento las molestias causadas saludos.

Última edición por aereon_88; 11/11/2010 a las 09:57
  #8 (permalink)  
Antiguo 11/11/2010, 10:14
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Escribir en un fichero csv

La solución era (quizás no exactamente, pero la idea):
Código C:
Ver original
  1. fprintf(g, "\"Number\",\"Value\",\"Decimal time\"\n");
  2. for(a=0;a<(number+1);a++){
  3.     fprintf(g,"%d,%d,%f\n",a,sol[a].value,sol[a].time);
  4. }

Con esto escribís la cabecera primero, y luego una fila por cada juego de datos.

Etiquetas: csv, escribir, fichero
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:59.