+void emufs_indice_agregar(INDICE *primero, char *data, INDICE_DATO dato)
+{
+ INDICE *iter = primero;
+
+ while (iter) {
+ iter->agregar_entrada(iter, emufs_indice_generar_clave(iter, data), dato);
+ iter = iter->sig;
+ }
+}
+
+INDICE_DATO emufs_indice_buscar(INDICE *primero, char *data)
+{
+ return primero->existe_entrada(primero, emufs_indice_generar_clave_desde_valor(primero, data));
+}
+
+CLAVE emufs_indice_generar_clave_desde_valor(INDICE *idx, char *data)
+{
+ CLAVE k;
+ if (idx == NULL) PERR("NULL INDEX!");
+
+ PERR("---- 1 ----");
+ switch (idx->tipo_dato) {
+ case IDX_FLOAT:
+ k.f_clave= *((float *)(data));
+ break;
+ case IDX_INT:
+ k.i_clave = *((int *)(data));
+ }
+ PERR("---- 2 ----");
+
+ return k;
+}