uSD Ethernet Shield

Hola,

Tengo el módulo Ethernet W5100 con el puerto uSD incorporado. Estoy tratando de crear un fichero txt dentro de la uSD, el cual su nombre debe ser un array de tipo char. La duda es si se puede hacer esto y de ser así, que poner en ésta línea del código para sustituir la palabra example por el array de manera que el archivo finalmente se llame "11010114416886.txt"

char code[]={1, 10, 101, 144, 168, 86};
myFile = SD.open("example.txt", FILE_WRITE);

Gracias de antemano.

Hola,
En la documentación de "SdFat library" dice "The SdFat library only supports short 8.3 names"
Solo puedes usar 8 caracteres como máximo en el nombre, y tres en la extensión. La limitación de "nombre corto" debe venir asociada al sistema mismo de archivos FAT.

Ok, gracias por contestar curro, no sabía ese detalle :blush:. Como solución a eso, puedo convertir los valores del array a hexadecimal y coger sólo hasta 8 carácteres de él. Aún así, sigo con la misma duda a la hora de poder nombrar un archivo txt a partir de una variable o array.

Es importante que el preguntar en el foro no sea la primera opcion, antes hay que buscar, pensar y probar.

Salu2

En los ejemplos de la librería en uno hacen algo parecido a eso, échales un vistazo

Gracias por contestar.
He estado buscando información previamente a consultar en el foro sobre la sintaxis al respecto y no he encontrado nada. No me gusta preguntar a la primera de cambio, pero creo que esta duda a lo mejor puede ser un poco concreta y no he visto ejemplos por el foro. Había visto el ejemplo que creo que sugieres chiva (datalogger.pde), pero por desgracia no saco nada en claro, pues con él lo que puedo hacer es escribir un string dentro del archivo txt creado, pero la instrucción File dataFile = SD.open("datalog.txt", FILE_WRITE); la vuelve a declarar de forma normal el nombre. No sé si se he conseguido daros a entender mi problema. Lo explico de otra forma:

No pretendo escribir variables o arrays dentro del archivo.txt creado, si no más bien averiguar la sintaxis del código para nombrar ese archivo.txt a partir de los valores de un array o simplemente una variable de manera que si la variable por ejemplo vale 10, el archivo creado con la función SD.open se llame 10.txt. Si alguien lo ha conseguido o sabe como es la sintaxis, sería de gran ayuda que lo posteara.

De nuevo gracias por vuestra ayuda.

Creía que añadieron los ejemplos que venían con la librería que los de Arduino usaron, pero hicieron los suyos propios
Éste es el código al que me refería, no lo copies tal cual porque la librería que viene con Arduino la cambiaron un poco, pero pienso que de ahí puedes sacar lo que quieres.

// create a new file
  char name[] = "LOGGER00.CSV";
  for (uint8_t i = 0; i < 100; i++) {
    name[6] = i/10 + '0';
    name[7] = i%10 + '0';
    if (file.open(&root, name, O_CREAT | O_EXCL | O_WRITE)) break;
  }
  if (!file.isOpen()) error ("file.create");
  Serial.print("Logging to: ");
  Serial.println(name);

Muchas gracias chiva, has sido de gran ayuda!

De nada zEtA!

Si sigues teniendo algún problema ya sabes por donde estamos