Пример #1
0
void testObtenerBloqueLibre() {

    long tamanoBloque=4*1024;
    Bloque elemento(tamanoBloque);
    RegistroVariable registro[4];
    string dato;
    dato = *(new string("Me enfrentare a esos malvados duendes."));
    for (int i=0; i<3; i++){
        registro [i] = *(new RegistroVariable(&dato, 38));
        elemento.addRegistro(&(registro[i]));
    }
    char* path;
    long posicion = 0;
    path = "ArchBloquesFijos5.bin";
    RegistroVariable* regInsertar;
    ArchivoBloquesFijos archivoBloquesFijos(path, tamanoBloque);
    regInsertar = (elemento).getRegistro(0);
    archivoBloquesFijos.Escribir(&elemento, posicion);
    posicion ++;
    archivoBloquesFijos.Escribir(&elemento, posicion);
    int result2 = archivoBloquesFijos.ObtenerBloqueLibre();
    archivoBloquesFijos.Borrar(posicion);
    int result = archivoBloquesFijos.ObtenerBloqueLibre();
    if((result==1)&&(result2==-1)) {
        std::cout << "Exito en Prueba 5." << std::endl;
    }
}
Пример #2
0
void testExcepciones (){
    long tamanoBloque=4*1024;
    Bloque elemento(tamanoBloque);
    Bloque elementoRecibido(tamanoBloque);
    RegistroVariable registro[4];
    string dato;
    dato = *(new string("Shut up and Take My Money."));
    for (int i=0; i<3; i++){
        registro [i] = *(new RegistroVariable(&dato, 26));
        elemento.addRegistro(&(registro[i]));
    }
    char* path;
    long posicion = 0;
    path = "ArchBloquesFijos9.bin";
    RegistroVariable* regInsertar;
    ArchivoBloquesFijos archivoBloquesFijos(path, tamanoBloque);
    regInsertar = (elemento).getRegistro(0);
    archivoBloquesFijos.Escribir(&elemento, posicion);
    posicion ++;
    archivoBloquesFijos.Escribir(&elemento, posicion);
    posicion ++;
    archivoBloquesFijos.Escribir(&elemento, posicion);
    posicion = 10;
    try{
        archivoBloquesFijos.Escribir(&elemento, posicion);
    }catch (ExcepcionBloqueInexistente &exception1){
        std::cout<<exception1.what()<<std::endl;
    }
    try{
        archivoBloquesFijos.Leer(posicion,&elementoRecibido);
    }catch (ExcepcionBloqueInexistente &exception2){
        std::cout<<exception2.what()<<std::endl;
    }
    try{
        posicion=1;
        archivoBloquesFijos.Borrar(posicion);
        archivoBloquesFijos.Leer(posicion,&elementoRecibido);
    }catch (ExcepcionBloqueLibre &exception3){
        std::cout<<exception3.what()<<std::endl;
    }
    try{
        posicion=1;
        archivoBloquesFijos.Borrar(posicion);
        archivoBloquesFijos.Borrar(posicion);
    }catch (ExcepcionBloqueLibre &exception4){
        std::cout<<exception4.what()<<std::endl;
    }
    try{
        posicion=12;
        archivoBloquesFijos.Borrar(posicion);
    }catch (ExcepcionBloqueInexistente &exception5){
        std::cout<<exception5.what()<<std::endl;
    }
}
Пример #3
0
void BorrarHash (char *cad,TablaHash t)
{
   tPosicion p;
   int pos=Hash(cad);

   p=primero(t[pos]);
   while (p!=fin(t[pos]) && !strcmp(cad,elemento(p,t[pos])))
      p=siguiente(p,t[pos]));

   if (p!=fin(t[pos]))
      borrar(p,t[pos]);
}
Пример #4
0
int MiembroHash (char *cad,TablaHash t)
{
   tPosicion p;
   int enc;	
   int pos=Hash(cad);
   
   p=primero(t[pos]);
   enc=0;
   while (p!=fin(t[pos]) && !enc) {
      if (strcmp(cad,elemento(p,t[pos]))==O)
         enc=1;
      else
         p=siguiente(p,t[pos]);
   }

   return enc;
}
Пример #5
0
void testEscribir() {

    long tamanoBloque=4*1024;
    Bloque elemento(tamanoBloque);
    RegistroVariable registro[4];
    string dato;
    dato = *(new string("Me enfrentare a esos malvados duendes."));
    for (int i=0; i<3; i++){
        registro [i] = *(new RegistroVariable(&dato, 38));
        elemento.addRegistro(&(registro[i]));
    }
    char* path;
    long posicion = 0;
    path = "ArchBloquesFijos3.bin";
    RegistroVariable* regInsertar;
    ArchivoBloquesFijos archivoBloquesFijos(path, tamanoBloque);
    regInsertar = (elemento).getRegistro(0);
    archivoBloquesFijos.Escribir(&elemento, posicion);
    if(true) {
        std::cout << "Exito en Prueba 3" << std::endl;
    }
}