+int emufs_indice_es_menor(INDICE *idx, CLAVE c1, CLAVE c2)
+{
+ char *sc1, *sc2; /* Si es IDX_STRING aca pongo los strings leidos */
+ EMUFS_REG_SIZE dummy; /* No me interesa el tamaño del string aca! */
+ int error;
+
+ switch (idx->tipo_dato) {
+ case IDX_FLOAT:
+ return c1.f_clave < c2.f_clave;
+ case IDX_INT:
+ return c1.i_clave < c2.i_clave;
+ case IDX_STRING:
+ sc1 = idx->emu_string->leer_registro(idx->emu_string, c1, &dummy, &error);
+ sc2 = idx->emu_string->leer_registro(idx->emu_string, c2, &dummy, &error);
+ error = (strcmp(sc1, sc2) < 0);
+ free(sc1);
+ free(sc2);
+ return error;
+ }
+ return 0;
+}
+
+int emufs_indice_es_igual(INDICE *idx, CLAVE c1, CLAVE c2)
+{
+ char *sc1, *sc2; /* Si es IDX_STRING aca pongo los strings leidos */
+ EMUFS_REG_SIZE dummy; /* No me interesa el tamaño del string aca! */
+ int error;
+
+ switch (idx->tipo_dato) {
+ case IDX_FLOAT:
+ return c1.f_clave == c2.f_clave;
+ case IDX_INT:
+ return c1.i_clave == c2.i_clave;
+ case IDX_STRING:
+ sc1 = idx->emu_string->leer_registro(idx->emu_string, c1, &dummy, &error);
+ sc2 = idx->emu_string->leer_registro(idx->emu_string, c2, &dummy, &error);
+ error = (strcmp(sc1, sc2) == 0);
+ free(sc1);
+ free(sc2);
+ return error;
+ }
+ return 0;
+}
+