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

nombre fichero variable

Estas en el tema de nombre fichero variable en el foro de C/C++ en Foros del Web. Hola, estoy intentando procesar unos datos y luego guardarlos en un fichero segun la fecha en la que estemos porque será un proceso diario. Por ...
  #1 (permalink)  
Antiguo 13/03/2012, 16:49
 
Fecha de Ingreso: noviembre-2007
Mensajes: 97
Antigüedad: 17 años
Puntos: 0
Pregunta nombre fichero variable

Hola,

estoy intentando procesar unos datos y luego guardarlos en un fichero segun la fecha en la que estemos porque será un proceso diario.
Por ejemplo de ejecutar hoy el programa el fichero seria:

c:\CARPETA\ventas1303.txt

He provado mil combinaciones con char[], char* y strings pero siempre me falla por algun lado, tengo que concatenar string+int+int+string.

Alguna sugerencia de como hacerlo porque llevo un par de días intentándolo y me estoy desesperando :(


Código:
      
        ofstream f3;
	char ruta[] = "c:\\CARPETA\\ventas";
	int dia = c.wDay;                                          //dia actual
        int mes = c.wMonth;                                    //mes actual
        char fin[] = ".txt";

//falta el codigo para unir con los int

	strcat(ruta, fin);

        f3.open(ruta,ofstream::out);
	e.Listar_en_Fichero(f3);
  #2 (permalink)  
Antiguo 14/03/2012, 05:27
 
Fecha de Ingreso: noviembre-2007
Mensajes: 97
Antigüedad: 17 años
Puntos: 0
Respuesta: nombre fichero variable

He encontrado la solución aquí lo dejo por si le sirve a alguien, mi problema basicamente era que no reservaba espacio para los char[] o cuando lo hacía no reservaba el suficiente y salia fuera de la pila.

El resultado sería : c:\CARPETA\ventes14_3_2012.txt


SYSTEMTIME c;
GetSystemTime (& c);

char rutafitxer[30] = "c:\\CARPETA\\ventes";
int dat = c.wDay, mes = c.wMonth, any=c.wYear;
char fin[8] = ".txt";


char aux2[15]="", aux[15]="";

itoa(dat,aux,10);
strcat(aux2,aux);
strcat(aux2,"_");
itoa(mes,aux,10);
strcat(aux2,aux);
strcat(aux2,"_");
itoa(any,aux,10);
strcat(aux2,aux);

strcat(rutafitxer, aux2);
strcat(rutafitxer, fin);

f3.open(rutafitxer,ofstream::out);
e.Llistar_en_Fitxer(f3);


f3.close();

Etiquetas: fichero, int, nombre, programa, string, variables
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 12:49.