cur = e->indices;
while (cur) {
del = cur;
- fprintf(stderr, "INDICE A ELIMINAR = %s\n", del->nombre);
cur = cur->sig;
emufs_indice_destruir(e, del);
}
if (encontrado) {
PERR("Clave encontrada, borrando ...");
- fprintf(stderr, "%s: La clave a borrar esta en el nodo %d\n", idx->nombre, nodo_id);
if (idx->funcion != IND_PRIMARIO) {
/* Debo borrar primero la clave desde el archivo de
* claves repetidas, y si recien ahi me quedo sin claves,
*/
PERR("Vamos a borrar duplicados");
encontrado = b_borrar_dup_clave(idx, claves[i].dato, dato);
- fprintf(stderr, "Listo, encontrado = %d\n", encontrado);
}
if (encontrado) {
b_borrar_clave(idx, nodo, nodo_id, k);
hijo1 = nodo_id;
hijo2 = nuevo_id;
- fprintf(stderr, "Nodos espliteados = %d %d\n", hijo1, hijo2);
nodo = padre;
nodo_id = nodo_header.padre;
} else {
hijo1 = nuevo_id+1;
hijo2 = nuevo_id;
- fprintf(stderr, "Nodos espliteados = %d %d\n", hijo1, hijo2);
/* Limpio al padre */
nuevo = b_leer_nodo(idx, 0);
nuevo_header.padre = -1;
nuevo_header.nivel = nodo_header.nivel+1;
nuevo_header.hijo_izquierdo = -1;
- fprintf(stderr, "root.nivel=%d\n", nuevo_header.nivel);
memset(nuevo, -1, idx->tam_bloque);
b_actualizar_header(nuevo, &nuevo_header);
b_grabar_nodo(idx, 0, nuevo);
char* nuevo = b_leer_nodo(idx, hijo_izq);
if (nuevo != NULL) {
B_NodoHeader nuevo_header;
- fprintf(stderr, "Actualizo padre de %d a %d\n", hijo_izq, nodo_id);
b_leer_header(nuevo, &nuevo_header);
nuevo_header.padre = nodo_id;
b_actualizar_header(nuevo, &nuevo_header);
char* nuevo = b_leer_nodo(idx, hijo_der);
if (nuevo != NULL) {
B_NodoHeader nuevo_header;
- fprintf(stderr, "Actualizo padre de %d a %d\n", hijo_der, nodo_id);
b_leer_header(nuevo, &nuevo_header);
nuevo_header.padre = nodo_id;
b_actualizar_header(nuevo, &nuevo_header);
while (emufs_indice_es_menor(idx, claves[pos].clave, k)) pos++;
/* Es el nodo una hoja? */
- fprintf(stderr, "La clave esta en la pos = %d\n", pos);
if (header.hijo_izquierdo != -1) {
PERR("Nodo no es hoja, intercambio");
actual = b_leer_nodo(idx, claves[pos].hijo_derecho);
/* Se cumple la condicion de hijos? */
PERR("Dejo todo consistente");
- fprintf(stderr, "Condicion : %d >= %d\n", header_actual.cant, MIN_HIJOS(idx));
if ((header_actual.cant >= MIN_HIJOS(idx)) || (actual_id == 0)) {
PERR("Borrar completo sin fundir");
return;
padre = b_leer_nodo(idx, padre_id);
b_leer_header(padre, &header_padre);
claves_padre = b_leer_claves(padre, &header_padre);
- fprintf(stderr, "ID del padre = %d de nivel %d\n", padre_id, header_padre.nivel);
/* TODO Tengo el hijo_izquierdo para revisar!! XXX */
if (header_padre.hijo_izquierdo == actual_id) {
PERR("Soy el hijo izquierdo de padre");
PERR("Ta calcule lo que tengo que hacer");
if ((derecha_id != -1) && (header_der.cant > MIN_HIJOS(idx))) {
PERR("Le pido clave a derecha");
- fprintf(stderr, "ANTES DE PEDIR DERECHA TENGO %d claves\n", header_actual.cant);
- fprintf(stderr, "PEDIR DERECHA DATOS : yo=%d, padre=%d, der=%d, pos_clave=%d\n", actual_id, padre_id, derecha_id, pos_padre);
b_pedir_clave_derecha(der, derecha_id, padre, padre_id, actual, actual_id, pos_padre);
PERR("listo");
b_leer_header(der, &header_der);
b_leer_header(padre, &header_padre);
b_leer_header(actual, &header_actual);
- fprintf(stderr, "DESPUES DE PEDIR DERECHA TENGO %d claves\n", header_actual.cant);
} else if ((izquierda_id != -1) && (header_izq.cant > MIN_HIJOS(idx))) {
PERR("Le pido clave a izquierda");
b_pedir_clave_izquierda(izq, izquierda_id, padre, padre_id, actual, actual_id, pos_padre);
while ((i<header.cant) && (emufs_indice_es_menor(idx, claves[i].clave, k))) i++;
if ((i<header.cant) && (emufs_indice_es_igual(idx, claves[i].clave, k))) {
/* LA ENCONTRE! , ahora busco la siguiente clave!! */
- fprintf(stderr, "Me encontre en pos %d en el padre\n", i);
if ((i+1)<header.cant) {
PERR("Joya, hay lugar a la derecha");
if (claves[i].hijo_derecho == -1) {
claves = b_leer_claves(nodo, &header);
i = 0;
PERR("Busco mi siguiente en mi padre");
- fprintf(stderr, "Padre tiene %d claves\n", header.cant);
while ((i<header.cant) && (emufs_indice_es_menor(idx, claves[i].clave, k))) {
i++;
- fprintf(stderr, "Proximo i : %d\n", i);
}
if (i<header.cant) {
PERR("Siguiente clave encontrada");
if ((izq_id != -1) && (header_izq.cant < CANT_HIJOS(idx))) {
PERR("ESTOY PASANDO CLAVE A IZQUIERDA");
a_pasar = buffer[0];
- fprintf(stderr, "YO=%d , a_pasar=%d\n", clave.i_clave, a_pasar.clave.i_clave);
b_pasar_clave_a_izquierda(idx, izq, izq_id, padre, nodo_header.padre, pos_padre, a_pasar, hijo1, padre_claves[pos_padre].hijo_derecho);
/* Pongo las claves que quedan en el nodo */
memcpy(claves, buffer+1, nodo_header.cant*sizeof(B_NodoEntry));
hijo1 = nodo_id;
hijo2 = nuevo_id;
- fprintf(stderr, "Nodos espliteados = %d %d\n", hijo1, hijo2);
nodo = padre;
nodo_id = nodo_header.padre;
} else {
hijo1 = nuevo_id+1;
hijo2 = nuevo_id;
- fprintf(stderr, "Nodos espliteados = %d %d\n", hijo1, hijo2);
/* Limpio al padre */
nuevo = b_leer_nodo(idx, 0);
nuevo_header.padre = -1;
nuevo_header.nivel = nodo_header.nivel+1;
nuevo_header.hijo_izquierdo = -1;
- fprintf(stderr, "root.nivel=%d\n", nuevo_header.nivel);
memset(nuevo, -1, idx->tam_bloque);
b_actualizar_header(nuevo, &nuevo_header);
b_grabar_nodo(idx, 0, nuevo);
tmp->size_hijos = 0;
tmp->keybucket = NULL;
- fprintf(stderr, "TIPO ARBOL= %d\n", tmp->tipo);
switch (tmp->tipo) {
case IND_B:
PERR("Creando indice con Arbol B");
tmp->size_hijos = 0;
tmp->keybucket = NULL;
- fprintf(stderr, "TIPO ARBOL= %d\n", tmp->tipo);
switch (tmp->tipo) {
case IND_B:
PERR("Creando indice con Arbol B");
ptr++;
}
error = 0;
- fprintf(stderr, "%s: ========> %s (%d)\n", idx->nombre, ptr, strlen(ptr)+1);
k.i_clave = idx->emu_string->grabar_registro(idx->emu_string,
ptr,
strlen(ptr)+1,
block = dato.bloque;
ID = dato.id;
PERR("Use indice");
- fprintf(stderr, "Datos leidos : id=%ld, bloque=%ld\n", ID, block);
} else {
/* Si no tengo claves, uso el campo entero para pasar un ID
* directamente.
} else {
PERR("Voy a recuperar desde un archivo");
tmp->fp = emufs_abrir("articulos");
- fprintf(stderr, "PTR=%p %p\n", tmp, tmp->fp);
if (tmp->fp == NULL) {
PERR("No se pudo cargar archivo de articulos.");
free(tmp);
lst_articulos->primero = NULL;
emu = lst_articulos->fp = emufs_crear("articulos", param->tipo_arch_art, param->tam_bloque_art, sizeof(t_Articulo));
- fprintf(stderr, "NUEVO %s con tipo %d\n", emu->nombre, param->tipo_arch_art);
emufs_agregar_indice(emu, "presentacion", IND_EXAHUSTIVO, param->ind_art[2].tipo_arbol, IDX_STRING, STRUCT_OFFSET(un_articulo, desc), param->ind_art[2].tam_bloque, 1);
emufs_agregar_indice(emu, "desc", IND_EXAHUSTIVO, param->ind_art[1].tipo_arbol, IDX_STRING, STRUCT_OFFSET(un_articulo, desc), param->ind_art[1].tam_bloque, 0);
if ((param->tipo_arch_art != T4) && (param->tipo_arch_art != T5))
k = menor;
if (k.i_clave > mayor.i_clave)
hasta_codigo = mayor.i_clave;
- fprintf(stderr, "k.i_clave = %d -- hasta_codigo = %d\n", k.i_clave, hasta_codigo);
while ((k.i_clave != -1) && (k.i_clave <= hasta_codigo)) {
PERR("BUSCO ARTICULO");
articulo = art_obtener(lst_articulos, k.i_clave, &dummy);
PERR("LO TENGO");
if (articulo != NULL) {
PERR("AGREGO A LA LISTA");
- fprintf(stderr, "%d - %s\n", articulo->numero, articulo->desc);
lista_agregar_fila(lista,
articulo->numero,
articulo->desc,
}
PERR("OBTENGO SIGUIENTE CLAVE");
k = idx->obtener_sig_clave(idx, k);
- fprintf(stderr, "k.i_clave = %d -- hasta_codigo = %d\n", k.i_clave, hasta_codigo);
}
curs_set(0);
datos = idx->buscar_entradas(idx, k, &cant);
else
datos = emufs_buscar_registros(lst_articulos->fp, "desc", desc, &cant);
- fprintf(stderr, "obtuve %d claves para %s\n", cant, desc);
for(i=0; i<cant; i++) {
error = 1;
k1.i_clave = datos[i].id;
* claves con repeticion
*/
PERR("=== MODIFICANDO ===");
- fprintf(stderr, "Desc=%s , PVU=%s, Codigo=%d\n", articulo.desc, articulo.pvu, articulo.numero);
lst_articulos->fp->modificar_registro(lst_articulos->fp, k1, tmp, size, &error, datos[i]);
PERR("=== FIN ===");
}
free(art);
art = NULL;
} else {
- fprintf(stderr, "Tengo %d datos\n", cant);
error = 1;
k.i_clave = datos[0].id;
PERR("Leo el primer dato");
*/
PERR("Guardando modificacion de Stock");
error = 0;
- fprintf(stderr, "PTR=%p %p\n", lst_articulos, lst_articulos->fp);
fp = lst_articulos->fp;
PERR("Pase1");
- fprintf(stderr, "METODO : %p\n", fp->modificar_registro);
fp->modificar_registro(fp, k, tmp, size, &error, dummy1);
PERR("Pase2");
PERR("Listo");
return 0;
}
- fprintf(stderr, "TIPO = %d\n", lst->fp->tipo);
switch (lst->fp->tipo) {
case T1:
case T2:
fprintf(fp, "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>\n");
fprintf(fp, "<FACTURAS>\n");
- fprintf(stderr, "EXPORTAR : Menor Clave = %d\n", k.i_clave);
while (k.i_clave != -1) {
fact = fact_buscar(lst_facturas, k.i_clave, &id, &id1);
- fprintf(stderr, "Lei factura numero %d y apunta a %p\n", k.i_clave, fact);
if (fact != NULL) {
fprintf(fp, "\t<FACTURA NroFac=\"%08d\" ", fact->numero);
fprintf(fp, "FechaEmisiĆ³n=\"%s\" ", fact->emision);
free(fact);
}
k = idx->obtener_sig_clave(idx, k);
- fprintf(stderr, "XXX Siguiente = %d\n", k.i_clave);
}
fprintf(fp, "\t</FACTURAS>\n");
free(leo);
}
if (strcmp(estado, fact.estado) == 0) {
- fprintf(stderr, "Agrego factura num=%d con %d items\n", fact.numero, fact.cant_items);
lista_agregar_fila_ordenada(lista,
fact.numero,
fact.emision,
free(fact);
fact = NULL;
} else {
- fprintf(stderr, "Tengo %d datos\n", cant);
k.i_clave = datos[0].id;
PERR("Leo el primer dato");
- fprintf(stderr, "ID = %ld en bloque %ld\n", datos[0].id, datos[0].bloque);
error = 1;
tmp = lst_facturas->fp->leer_registro(lst_facturas->fp, k, &size, &error);
if (tmp == NULL) {
wmove(win, y, 0);
sprintf(tmp, "%d", header.hijo_izquierdo);
waddstr(win, tmp);
- fprintf(stderr, "CANT DE CLAVES = %d\n", header.cant);
for(i=0; i<header.cant; i++) {
sprint_ind(idx, tmp, claves[i]);
posibles_proximos[i] = claves[i].hijo_derecho;