void ingresar_registro(){ printf("-----------------------------------------\n"); struct dogType *datos = asignar_memoria(datos); printf("Nombre del animal: "); scanf("%c",&datos->nombre); while(getchar()!='\n'); printf("\nEdad del animal: "); scanf("%d",&datos->edad); while(getchar()!='\n'); printf("\nRaza del animal: "); scanf("%c",&datos->raza); while(getchar()!='\n'); printf("\nPeso del animal: "); scanf("%f",&datos->peso); while(getchar()!='\n'); printf("\nSexo del animal: "); scanf("%c",&datos->sexo); while(getchar()!='\n'); datos->llave = 1; datos->escrito = 1; datos->siguiente = asignar_memoria(datos->siguiente); datos->siguiente->llave = datos->llave + 1; datos->siguiente->escrito = 0; FILE *archivo = cargar_archivo_escribir(archivo); escribir_archivo(archivo,datos); cerrar_archivo(archivo); liberar_memoria(datos); printf("\nRegistro bien realizado\n"); //Falta lectura de tecla //scanf("%d") //while(getchar()!='\n'); };
int HashingExtensible::crear_archivo(std::string nombreArchivo) { if (abrir_archivo(nombreArchivo) == RES_OK) { cerrar_archivo(); return RES_FILE_EXISTS; } int resultado = this->manejador_bloques->crear_archivo(fileName+".dat", 1024);//tamanio anterior TAM_DEFAULT if (resultado != RES_OK) return resultado; resultado = this->manejador_bloques->abrir_archivo(fileName+".dat", "rb+"); //Creamos la tabla resultado += this->tabla->crear(fileNameTabla); this->tabla->cambiar_valor(0, 0); // la pos 0 de la tabla se le coloca el num de bloque 0 //Creamos un nuevo bloque con dispersion 1 y lo guardamos en el archivo de bloques del Hash Bloque* bloqueNuevo = this->manejador_bloques->crear_bloque(); if (bloqueNuevo == NULL) { manejador_bloques->cerrar_archivo(); return RES_ERROR; } this->_crear_bloque(1, &bloqueNuevo); int res = this->manejador_bloques->escribir_bloque(bloqueNuevo);//Va a estar en la posicion 0 delete (bloqueNuevo); this->manejador_bloques->cerrar_archivo(); if (res != 0) return RES_ERROR; this->cant_bloques = 1; return resultado; }
void ver_registro(){ FILE *archivo = cargar_archivo_leer(archivo); struct dogType *datos = asignar_memoria(datos); leer_archivo(archivo,datos); cerrar_archivo(archivo); lista_registro(datos); liberar_memoria(datos); //Metodo ineficiente :S datos = asignar_memoria(datos); leer_archivo(archivo,datos); if(ver_opcion(datos) == 1) printf("Registro mostrado exitosamente"); else printf("No se pudo mostrar el registro solicitado"); liberar_memoria(datos); //Falta la tecla de espera :( };