Example #1
4
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;
}
Example #3
0
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 :(
};