X-Git-Url: https://git.llucax.com/z.facultad/75.06/emufs.git/blobdiff_plain/fe7cadabd775ddd59714749b7dfe31a578c6ecca..afae487b5828cdb06702759dad8354c889723bea:/emufs_gui/emufs_view.c?ds=sidebyside diff --git a/emufs_gui/emufs_view.c b/emufs_gui/emufs_view.c index be6bb29..003a6b3 100644 --- a/emufs_gui/emufs_view.c +++ b/emufs_gui/emufs_view.c @@ -59,8 +59,8 @@ void print_help(char *s) int leer_tipo_arbol(char *s) { if (strcmp(s, "B") == 0) return 0; - if (strcmp(s, "B*") == 0) return 1; - if (strcmp(s, "B+") == 0) return 2; + if (strcmp(s, "BA") == 0) return 1; + if (strcmp(s, "BP") == 0) return 2; /* Por defecto es un B */ return 0; @@ -73,32 +73,37 @@ void leer_param_ind_art(t_Parametros *param, xmlNode *padre) node = padre->children; while (node) { if (node->type == XML_ELEMENT_NODE) { - nombre = xml_get_prop(node, "nombre"); - - if (strcmp(nombre, "codigo")==0) { - tmp = xml_get_prop(node, "tipo"); - param->ind_art[0].tipo_arbol = leer_tipo_arbol(tmp); - free(tmp); - tmp = xml_get_prop(node, "bloque"); - param->ind_art[0].tam_bloque = atoi(tmp); - free(tmp); - } else if (strcmp(nombre, "desc")==0) { - tmp = xml_get_prop(node, "tipo"); - param->ind_art[1].tipo_arbol = leer_tipo_arbol(tmp); - free(tmp); - tmp = xml_get_prop(node, "bloque"); - param->ind_art[1].tam_bloque = atoi(tmp); - free(tmp); - } else if (strcmp(nombre, "presentacion")) { - tmp = xml_get_prop(node, "tipo"); - param->ind_art[2].tipo_arbol = leer_tipo_arbol(tmp); - free(tmp); - tmp = xml_get_prop(node, "bloque"); - param->ind_art[2].tam_bloque = atoi(tmp); - free(tmp); + if (strcmp(node->name, "indice")==0) { + PERR(" LEO INDICE"); + nombre = xml_get_prop(node, "nombre"); + + if (strcmp(nombre, "codigo")==0) { + tmp = xml_get_prop(node, "tipo"); + param->ind_art[0].tipo_arbol = leer_tipo_arbol(tmp); + free(tmp); + tmp = xml_get_prop(node, "bloque"); + param->ind_art[0].tam_bloque = atoi(tmp); + free(tmp); + } else if (strcmp(nombre, "desc")==0) { + tmp = xml_get_prop(node, "tipo"); + param->ind_art[1].tipo_arbol = leer_tipo_arbol(tmp); + free(tmp); + tmp = xml_get_prop(node, "bloque"); + param->ind_art[1].tam_bloque = atoi(tmp); + free(tmp); + } else if (strcmp(nombre, "presentacion")==0) { + tmp = xml_get_prop(node, "tipo"); + param->ind_art[2].tipo_arbol = leer_tipo_arbol(tmp); + free(tmp); + tmp = xml_get_prop(node, "bloque"); + param->ind_art[2].tam_bloque = atoi(tmp); + free(tmp); + } + PERR(" LISTO"); + free(nombre); } - free(nombre); } + node = node->next; } } @@ -109,25 +114,30 @@ void leer_param_ind_fact(t_Parametros *param, xmlNode *padre) node = padre->children; while (node) { if (node->type == XML_ELEMENT_NODE) { - nombre = xml_get_prop(node, "nombre"); - - if (strcmp(nombre, "numero")==0) { - tmp = xml_get_prop(node, "tipo"); - param->ind_fac[0].tipo_arbol = leer_tipo_arbol(tmp); - free(tmp); - tmp = xml_get_prop(node, "bloque"); - param->ind_fac[0].tam_bloque = atoi(tmp); - free(tmp); - } else if (strcmp(nombre, "emision")==0) { - tmp = xml_get_prop(node, "tipo"); - param->ind_fac[1].tipo_arbol = leer_tipo_arbol(tmp); - free(tmp); - tmp = xml_get_prop(node, "bloque"); - param->ind_fac[1].tam_bloque = atoi(tmp); - free(tmp); + if (strcmp(node->name, "indice")==0) { + PERR(" LEO INDICE"); + nombre = xml_get_prop(node, "nombre"); + + if (strcmp(nombre, "numero")==0) { + tmp = xml_get_prop(node, "tipo"); + param->ind_fac[0].tipo_arbol = leer_tipo_arbol(tmp); + free(tmp); + tmp = xml_get_prop(node, "bloque"); + param->ind_fac[0].tam_bloque = atoi(tmp); + free(tmp); + } else if (strcmp(nombre, "emision")==0) { + tmp = xml_get_prop(node, "tipo"); + param->ind_fac[1].tipo_arbol = leer_tipo_arbol(tmp); + free(tmp); + tmp = xml_get_prop(node, "bloque"); + param->ind_fac[1].tam_bloque = atoi(tmp); + free(tmp); + } + PERR(" LISTO"); + free(nombre); } - free(nombre); } + node = node->next; } } @@ -147,8 +157,10 @@ void leer_param_art(t_Parametros *param, xmlNode *padre) tmp = xml_get_prop(node, "bloque"); param->tam_bloque_art = atoi(tmp); free(tmp); - } else if (strcmp(node->name, "indices")) { + } else if (strcmp(node->name, "indices")==0) { + PERR("LEO INDICES") leer_param_ind_art(param, node); + PERR("LISTO"); } } node = node->next; @@ -178,6 +190,10 @@ void leer_param_fac(t_Parametros *param, xmlNode *padre) tmp = xml_get_prop(nodo, "bloque"); param->tam_bloque_nota = atoi(tmp); free(tmp); + } else if (strcmp(nodo->name, "indices")==0) { + PERR("LEO INDICES") + leer_param_ind_fact(param, nodo); + PERR("LISTO"); } } nodo = nodo->next; @@ -346,11 +362,12 @@ void menu_articulos() MENU_OPCION("Baja", "Elimina un articulo existente."), MENU_OPCION("Modificacion", "Modifica un articulo existente."), MENU_OPCION("Consultas", "Consulta varias de articulo."), + MENU_OPCION("Recorrer", "Recorrer el archivo por alguno de sus indices."), MENU_OPCION("Volver", "Volver al menu anterior.") }; int opt; - while ((opt = menu_ejecutar(mi_menu, 5, "Menu Articulos")) != 4) { + while ((opt = menu_ejecutar(mi_menu, 6, "Menu Articulos")) != 5) { switch (opt) { case 0: art_agregar(NULL); @@ -363,6 +380,9 @@ void menu_articulos() break; case 3: art_consultas(NULL); + break; + case 4: + art_recorrer(); } } @@ -492,7 +512,7 @@ int main_menu() h = LINES-2; w = COLS-2; win = newwin(h, w, 1, 1); - emufs_indice_b_ver(art_get_lst()->fp->indices, win, w, h, 0); + emufs_indice_b_ver(fact_get_lst()->fp->indices, win, w, h, 0); delwin(win); } }