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;
}
Esempio n. 2
0
void read_vertices
(  const char *    nombre_archivo_pse, 
   vector<float> & vertices
)
{

   unsigned 
      num_vertices = 0, 
      num_caras   = 0 ;
   ifstream  
      src ;
   string 
      na = nombre_archivo_pse ;
      
   if ( na.substr( na.find_last_of(".")+1 ) != "ply" )
      na += ".ply" ;
   
   abrir_archivo( na, src ) ;
   leer_cabecera( src, num_vertices, num_caras, false ) ;
   leer_vertices( num_vertices, vertices, src ) ;
   
   cout << "archivo ply leido (únicamente vértices)" << endl << flush ;
}