Go Down

Topic: Ayuda con string y char* (Read 2546 times) previous topic - next topic

Armiduguel

Muy buenas a tod@s,

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?¿?


Saludos.


eried

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
My website: http://ried.cl

Armiduguel

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?

Saludos

eried


por vaguería no miré lo suficiente


Por vaguería ahora no has probado suficiente. De seguro puedes resolver eso último en un par de pruebas.
My website: http://ried.cl

curro92


Hola,
puedes formatear el nombre del fichero en simple C, sin usar String
 
Code: [Select]

    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.

Go Up