6 #include "indice_bplus.h"
9 char* cargar_registro(char* texto_ini,int len_ini, CLAVE clave, char *texto_fin, int len_fin)
12 reg = (char*)malloc(len_ini+sizeof(CLAVE)+len_fin+1); /* +1 para el \0 */
13 memcpy(reg, texto_ini, len_ini);
14 memcpy(reg+len_ini, &clave, sizeof(CLAVE));
15 strcpy(reg+len_ini+sizeof(CLAVE), texto_fin);
20 void imprimir_reg(char* reg, int off, int len)
24 memcpy(&clave, reg+off, sizeof(CLAVE));
25 printf("CLAVE = %d\n", clave);
27 for(i=0; i<len; i++) printf("%c",reg[i]);
29 printf("TAMANIO REGISTRO = %d\n\n", len);
34 int main (int argc,char* argv[])
40 int tam_nodo = SIZE_B_PLUS_HEADER + sizeof(CLAVE)*5 + sizeof(CLAVE)*6;
44 texto="PARTE CONSTANTE, clave =";
46 emu = emufs_crear("test",T1,512,0);
47 emufs_agregar_indice(emu,"claveidx",IND_PRIMARIO,IND_B_PLUS,IDX_INT,strlen(texto),tam_nodo);
50 texto2="termina el texto re bonito CLAVE = 77";
51 r = cargar_registro(texto, strlen(texto), clave, texto2, strlen(texto2));
52 imprimir_reg(r, strlen(texto), strlen(texto)+strlen(texto2)+sizeof(CLAVE));
53 len = strlen(texto)+strlen(texto2)+sizeof(CLAVE);
54 emufs_tipo1_insertar_ordenado(emu, r, len, &err);
55 PERR("REGISTRO 1 GRABADO");
59 texto2="termina el texto re bonito pero mas largo CLAVE = 90";
61 r = cargar_registro(texto, strlen(texto), clave, texto2, strlen(texto2));
62 imprimir_reg(r, strlen(texto), strlen(texto)+strlen(texto2)+sizeof(CLAVE));
63 len = strlen(texto)+strlen(texto2)+sizeof(CLAVE);
64 emufs_tipo1_insertar_ordenado(emu, r, len, &err);
65 PERR("REGISTRO 2 GRABADO");
69 texto2="Este es el fin del registro tres, puse tres en numero para que sea mas largo el texto CLAVE = 95";
71 r = cargar_registro(texto, strlen(texto), clave, texto2, strlen(texto2));
72 imprimir_reg(r, strlen(texto), strlen(texto)+strlen(texto2)+sizeof(CLAVE));
73 len = strlen(texto)+strlen(texto2)+sizeof(CLAVE);
74 emufs_tipo1_insertar_ordenado(emu, r, len, &err);
75 PERR("REGISTRO 3 GRABADO");
79 texto2="REGISTRO CUATRO CLAVE = 99";
81 r = cargar_registro(texto, strlen(texto), clave, texto2, strlen(texto2));
82 imprimir_reg(r, strlen(texto), strlen(texto)+strlen(texto2)+sizeof(CLAVE));
83 len = strlen(texto)+strlen(texto2)+sizeof(CLAVE);
84 emufs_tipo1_insertar_ordenado(emu, r, len, &err);
85 PERR("REGISTRO 4 GRABADO");
89 texto2="el quinto registro tiene un largo promedio como para entrar en el bloque CLAVE = 102";
91 r = cargar_registro(texto, strlen(texto), clave, texto2, strlen(texto2));
92 imprimir_reg(r, strlen(texto), strlen(texto)+strlen(texto2)+sizeof(CLAVE));
93 len = strlen(texto)+strlen(texto2)+sizeof(CLAVE);
94 emufs_tipo1_insertar_ordenado(emu, r, len, &err);
95 PERR("REGISTRO 5 GRABADO");
99 texto2="El registro 6 no entra CLAVE = 106";
101 r = cargar_registro(texto, strlen(texto), clave, texto2, strlen(texto2));
102 imprimir_reg(r, strlen(texto), strlen(texto)+strlen(texto2)+sizeof(CLAVE));
103 len = strlen(texto)+strlen(texto2)+sizeof(CLAVE);
104 emufs_tipo1_insertar_ordenado(emu, r, len, &err);
105 PERR("REGISTRO 6 GRABADO");