Hola.
Pues dada la inquietud que surgió a raiz de la solución dada a un post sobre software, podemos intentar crear una librería para gestión de una tabla en SD con un número de registros considerable.
Establezco como punto de partida el último post de maxid para comenzar con las disertaciones previas:
maxid:
llego tarde pero tengo varias ideas.Primero encontré que la libreria SD.h hereda de Stream por lo que tiene un metodo Find, probé en un ejemplo y compila, no tengo una sd para probar.
Con respecto al tamaño, de claves lo vengo pensando hace rato porque tengo un proyecto que lo usa y lo tengo en espera.
les comentos algunas opciones
- Si lo accedes de una pc ya lo envias ordenado en el archivo.
- Un metodo que usaba novell, era calcular un hash de la posicion aproximada, desde ahi para abajo seguia buscando secuencialmente, esto permite una busqueda muy rapida
- Otra es tenerlos ordenados e ir comparando el primer caracter solo, si no coincide pasar a la siguiente linea, si coincide seguir con el segundo caracter. Mejora el rendimiento ya que no hay que leer la clave completa.
- Tambien se puede armar una cache de claves mas usada y primero leer ahi despues en el resto, que puede estar en un array en la eprom o en ram misma
Propongo como punto de partida (creo que ya tiene implementadas cosas muy buenas) la librería ExtendedDatabaseLibrary. Si os parece, intentaremos modificarla para enfocarla totalmente a archivo SD, y ampliarla para dotarla de funciones de búsqueda e indexación.
FDB.zip (7.15 KB)