Sobre implementación de archivo base de datos Arduino

Jeje, usando Excel y todo; con tal de que la representación quede a escala.

Pues más claro no me pudo haber quedado :smiley: . Tan cierta que es la frase de "una imagen vale más que mil palabras".

Entonces, de lo que acabo de entender: la tabla de índices es inamovible; para hacerla crecer hay que desplazar los registros próximos al final del archivo (lo complicado es buscar a cuál índice le corresponde).

Si se te hace difícil determinar cuándo corresponde repetir este proceso, es porque el tamaño del registro no es múltiplo de 4 (para efectos de almacenamiento en el archivo).
En el peor de los casos se desperdiciarían 3 bytes por registro; pero con tal de que todo esté "alineado", se vuelve mucho más sencillo predecir cuánto espacio se libera por registro desplazado.

Para la lógica de la aplicación, el registro sigue teniendo una longitud arbitraria; sin embargo, para su almacenamiento, debe tener una longitud múltiplo de 4. Dicho en otras palabras: el registro debe ocupar un espacio medido en índices, con redondeo en función techo. Esta sería la forma de calcularlo:

tamanioFisico = tamanioRegistro / 4 + (tamanioRegistro % 4 ? 1 : 0);

Al ser un "valor derivado", es innecesario especificarlo explícitamente en la cabecera, pero sí se puede almacenar como atributo de la instancia para calcularlo sólo una vez en tiempo de creación o apertura del archivo.

PD: ¿me parece a mi, o si el registro es pequeño, cabe la posibilidad de que se ejecute este proceso constantemente?