Pages: [1]   Go Down
Author Topic: Ayuda con string y char*  (Read 2347 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 10
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.

Logged

Chile
Offline Offline
Edison Member
*
Karma: 35
Posts: 1251
Arduino rocks?
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

My website: http://ried.cl

Offline Offline
Newbie
*
Karma: 0
Posts: 10
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Chile
Offline Offline
Edison Member
*
Karma: 35
Posts: 1251
Arduino rocks?
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

My website: http://ried.cl

Euskadi
Offline Offline
God Member
*****
Karma: 16
Posts: 727
Arduinotarrak
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset


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

    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.
Logged

Pages: [1]   Go Up
Jump to: