estoy intentando guardar ficheros diarios de datos en una tarjeta SD, para nombrar los ficheros voy a utilizar la fecha del día en cuestión (obtengo sin problemas la fecha y hora del reloj), pero tengo un problema con el método SD.open(char*, mode).
Cuando compongo el nombre del fichero lo hago de la siguiente manera:
String dia = 20, mes=09, anio=2012;
String nombrefichero = "";
nombrefichero =dia;
nombrefichero += mes;
nombrefichero += anio;
nombrefichero += ".txt";
pero el método SD.open(nombrefichero, mode); no lo permite el compilador!!!!
en camibo si hago:
char* nombrefichero = "19092012.txt";
SD.open(nombrefichero, mode); crea el fichero sin problemas
en cambio no puedo concatenar (+=) elementos char*,como lo hago con String.
que manera hay de pasar de String a char*?¿?¿
o alguna manera alternativa de crear el fichero con la fecha del día que no esté teniendo en cuenta?¿?
Busca la documentación de StringObject, hay una función para pasarlo a un arreglo de char, sin embargo en tu caso es posible hacerlo sin String, solo debes añadir cada caracter en el arreglo en orden y añadir '\0' al final
Muy buenas,
ya he conseguido pasar de string a char*, por vaguería no miré lo suficiente y con una simple función se consigue fichero.toCharArray(nombrefichero,13); (SOLUCIONADO)
una vez que tengo creado el fichero, al escribir sobre él, que función me recomendariais ¿dataFile.println(); o dataFile.write();? con dataFile.println() estoy teniendo problemas y me salen caracteres raros cuando escribo, ¿a que puede ser debido?
Hola,
puedes formatear el nombre del fichero en simple C, sin usar String
int dia = 20;
int mes = 9;
int anio = 2012;
char nombrefichero[13];
sprintf(nombrefichero, "%.2d%.2d%d.txt", dia, mes, anio);
// el resultado es: 20092012.txt
Para dia, mes y año yo utilizaría variables numéricas, aunque se pueda hacer también con cadenas de caracteres.