A ver si entendí: ¿le dejas al sistema de archivos que separe las "entradas" de una configuración en archivos pequeños y delimitados por directorios ("carpetas")? Tiene sentido...
No me lo tomes a mal, pero tengo una objeción a todo esto: a menos que uses un micro con al menos 4 KB de RAM, tus funciones tienen una "media-alta" probabilidad de colgar la ejecución del programa.
¿Por qué? Por ejemplo: el Arduino Uno, Nano, y Pro Mini usan el ATmega328P; un microcontrolador con apenas 2 KB de RAM.
La librería SD necesita aprox. 700 bytes (34% de la RAM) solo desde el arranque (sin contar los objetos File que se crean en tiempo de ejecución). Ese no es el problema, lo es cuando le sumamos que cada objeto File como variable global (en contexto local ese espacio se libera cuando la función "muere") ocupa al menos el espacio de una entrada de la FAT (que creo que son 32 bytes).
Dependiendo del código, esto último tampoco puede ser el problema; sin embargo, LA AMENAZA LATENTE ESTÁ EN COMO SE USA String, en especial cuando se concatena. Lo que llamó mi atención es esto:
if (MyINI)
{
Value="";
while (MyINI.available()) Value+=(char) MyINI.read();
MyINI.close();
}
Entiendo que es para archivos de un solo dato, pero si por algún motivo dicho archivo es de 100 bytes, probable y la ejecución acaba ahí.
¿Razón? Para no dar la historia larga, se debe simplemente a que concatenar strings de esa manera puede llevar a "fragmentar" el espacio libre y eventualmente colgar el programa por no encontrar uno lo suficientemente grande para crear cierto objeto que el código "por fuerza" solicita.
Reitero, con Arduino Mega no tengo nada en contra, es cuando se usan los basados en ATmega328P donde hay que tener ese cuidado. En tu ejemplo de prueba de seguro que funcionó sin problemas, pero combínalo con otro proyecto que haga el código más complejo (en especial que agregue más librerías) y me cuentas cómo te fue.
Por experiencia propia, me atrevo a decir que con que se detecten menos de 300 bytes libres (RAM) en tiempo de compilación, a partir de ahí empieza el dolor de cabeza.