]> git.llucax.com Git - z.facultad/75.06/emufs.git/commitdiff
Agrego T4 y T5 a la GUI en varios lados. La carga inicial se hace sin problemas,
authorRicardo Markiewicz <gazer.arg@gmail.com>
Sun, 30 May 2004 23:52:38 +0000 (23:52 +0000)
committerRicardo Markiewicz <gazer.arg@gmail.com>
Sun, 30 May 2004 23:52:38 +0000 (23:52 +0000)
 palma en obtener_sig_clave porque no esta contemplado usar la otra funcion
 obtener_sig_clave_isam

emufs/indices.c
emufs_gui/articulos.c
emufs_gui/emufs.dtd
emufs_gui/emufs.xml
emufs_gui/emufs_view.c

index ccb782ae547ba766083990a785ee17a08ee400fd..12fe409c3e1725cc5b347583bc852438494ffdb9 100644 (file)
@@ -90,7 +90,7 @@ INDICE *emufs_indice_crear(EMUFS *emu, char *nombre, INDICE_FUNCION funcion, IND
                        emufs_b_plus_crear(tmp);
                        tmp->obtener_menor_clave = emufs_b_plus_obtener_menor_clave;
                        tmp->obtener_mayor_clave = emufs_b_plus_obtener_mayor_clave;
-                       tmp->obtener_sig_clave_isam = emufs_b_plus_obtener_sig_clave;                   
+                       tmp->obtener_sig_clave_isam = emufs_b_plus_obtener_sig_clave;
                        break;
        }
 
index 37288f45a844d9de7cb4d1a68ac90f00c27510db..5efb32486915f416cedcb945ea7ed9a694b00458 100644 (file)
@@ -117,7 +117,12 @@ t_LstArticulos *art_cargar(t_Parametros *param)
                PERR("Voy a agregar un indice");
                emufs_agregar_indice(tmp->fp, "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(tmp->fp, "desc", IND_EXAHUSTIVO, param->ind_art[1].tipo_arbol, IDX_STRING, STRUCT_OFFSET(un_articulo, desc), param->ind_art[1].tam_bloque, 0);
-               emufs_agregar_indice(tmp->fp, "codigo", IND_PRIMARIO, param->ind_art[0].tipo_arbol, IDX_INT, 0, param->ind_art[0].tam_bloque, 0);
+
+               /* Para secuencial indexado el indice primario siempre es el B+ */
+               if ((param->tipo_arch_art != T4) && (param->tipo_arch_art != T5))
+                       emufs_agregar_indice(tmp->fp, "codigo", IND_PRIMARIO, param->ind_art[0].tipo_arbol, IDX_INT, 0, param->ind_art[0].tam_bloque, 0);
+               else
+                       emufs_agregar_indice(tmp->fp, "codigo", IND_PRIMARIO, IND_B_PLUS, IDX_INT, 0, param->ind_art[0].tam_bloque, 0);
                if (!tmp->fp) {
                        PERR("NO SE PUDO CREAR ARCHIVO ARTICULOS");
                        free(tmp);
@@ -559,7 +564,10 @@ void art_reformatear(t_Parametros *param)
        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);
-       emufs_agregar_indice(emu, "codigo", IND_PRIMARIO, param->ind_art[0].tipo_arbol, IDX_INT, 0, param->ind_art[0].tam_bloque, 0);
+       if ((param->tipo_arch_art != T4) && (param->tipo_arch_art != T5))
+               emufs_agregar_indice(emu, "codigo", IND_PRIMARIO, param->ind_art[0].tipo_arbol, IDX_INT, 0, param->ind_art[0].tam_bloque, 0);
+       else
+               emufs_agregar_indice(emu, "codigo", IND_PRIMARIO, IND_B_PLUS, IDX_INT, 0, param->ind_art[0].tam_bloque, 0);
        PERR("Listo");
        /* Ahora solo resta volver a meter todos los datos en el archivo */
        fp = fopen(tmpfile, "rb");
index a28fd4e99cd98b3efca5b9e263aa3ebf2f11ca0a..6226f2e818cf3f9455e21f39603787ddad95852b 100644 (file)
@@ -11,7 +11,7 @@
 <!ELEMENT fuente (#PCDATA)>
 <!ELEMENT datos EMPTY>
 <!ATTLIST datos
-       tipo (1 | 2 | 3) #REQUIRED
+       tipo (1 | 2 | 3 | 4 | 5) #REQUIRED
        bloque CDATA #REQUIRED
 >
 <!ELEMENT datos_notas EMPTY>
@@ -23,7 +23,7 @@
 <!ELEMENT indice EMPTY>
 <!ATTLIST indice
        nombre CDATA #REQUIRED
-       tipo (B | BA | BP) #REQUIRED
+       tipo (B | BA) #REQUIRED
        bloque CDATA #REQUIRED
 >
 
index 560aeb4f9db03ddf38ef3886451368a93edb7279..946a50daa49b8ffe4a42ced40cfdfa74b81fa6a5 100644 (file)
@@ -4,7 +4,7 @@
 <emufs>
        <articulos>
                <fuente>articulos.xml</fuente>
-               <datos tipo="1" bloque="512" />
+               <datos tipo="4" bloque="512" />
                <indices>
                        <indice nombre="codigo" tipo="B" bloque="512" />
                        <indice nombre="desc" tipo="B" bloque="512" />
index 0062719cd8ba3b1c474373e5477569bae9503291..8a0a1d655e132c3e5aed5db41421a5d0bec1d748 100644 (file)
@@ -61,7 +61,6 @@ void print_help(char *s)
 int leer_tipo_arbol(char *s) {
        if (strcmp(s, "B") == 0) return 0;
        if (strcmp(s, "BA") == 0) return 1;
-       if (strcmp(s, "BP") == 0) return 2;
 
        /* Por defecto es un B */
        return 0;
@@ -723,13 +722,15 @@ void preguntar_nuevo_tipo(const char *title, int *tipo, int *tam_bloque, int *ta
 
        mvwaddstr(win, 0, 1, title);
        form = form_crear(win);
-       form_agregar_widget(form, RADIO, "Tipo de archivo", 3, "T1,T2,T3");
+       form_agregar_widget(form, RADIO, "Tipo de archivo", 3, "T1,T2,T3,T4,T5");
        form_ejecutar(form, 1,1);
 
        s = form_obtener_valor_char(form, "Tipo de archivo");
        if (strcmp(s, "T1") == 0) n = T1;
        if (strcmp(s, "T2") == 0) n = T2;
        if (strcmp(s, "T3") == 0) n = T3;
+       if (strcmp(s, "T4") == 0) n = T4;
+       if (strcmp(s, "T5") == 0) n = T5;
 
        form_destruir(form);
 
@@ -777,6 +778,19 @@ void preguntar_nuevo_tipo(const char *title, int *tipo, int *tam_bloque, int *ta
                        if ((*tam_reg) != -1)
                                (*tam_reg) = form_obtener_valor_int(form, "Tamaño de registro");
                        form_destruir(form);
+                       break;
+               case T4:
+               case T5:
+                       form = form_crear(win);
+                       form_agregar_widget(form, INPUT, "Tamaño de bloque", 8, "");
+                       is_ok = 0;
+                       do {
+                               form_set_valor(form, "Tamaño de bloque", "");
+                               form_ejecutar(form, 1,1);
+                               if (form_obtener_valor_int(form, "Tamaño de bloque") > 0) is_ok = 1;
+                       } while (!is_ok);
+                       (*tam_bloque) = form_obtener_valor_int(form, "Tamaño de bloque");
+                       form_destruir(form);
        }
        werase(win);
        wrefresh(win);