コード例 #1
0
ファイル: FormOrg.cs プロジェクト: miguellgt/file-structures
        private void FormOrg_FormClosed(object sender, FormClosedEventArgs e)
        {
            CNodoEntidad entidadAux, entCopia;
            CArchivo aO, aD;
            string nameFileO, nameFileN;
            int despCE, tipoD, tamCE, tamBloq, despCB, tipoCB, tamCB; ;

            despCE = tipoD = tamCE = tamBloq = despCB = tipoCB = tamCB = 0;

            aO = getArchivo();
            aD = new CArchivo("Copia");//Se crea el nuevo archivo y se almacena en un directorio temporal
            
            nameFileO = aO.getNameFile();//Se obtienen la ruta de la organizacion de trabajo
            nameFileN = aD.getNameFile();//Se Obtiene la ruta del donde se hara el mantenimiento

            creaCopia(aO, aD);//Se caraga el diccionario de datos que utilizo en la organiacion
            aO.AbrirArchivo();//Abrir los flujos de archivos para operar en ellos
            aD.AbrirArchivo();

            entidadAux = aO.getListaEntidad().getCabListEnt();
            entCopia = aD.getListaEntidad().getCabListEnt();

            while (entidadAux != null)//Se visitan todas las entidades de la organizacion
            {
                if (entidadAux.getApCabDatos() != -1)
                {
                    DameCE(entidadAux, ref despCE, ref tipoD, ref tamCE, ref tamBloq, ref despCB, ref tipoCB, ref tamCB, null);
                 
                    switch(getTipoOrg())
                    {
                        case 1://Mantenimiento en Organizacion Secuencial
                            MantenimientoSec(aO, aD, entidadAux, entCopia, tamBloq);
                        break;
                        case 2://Manteniemito en Organizacion Secuencial Indexada
                            MantenimientoSecInd(aO, aD, entidadAux, entCopia, tamBloq);
                        break;
                        case 3://Mantenimiento en Arboles B+
                            MantenimientoArbolBplus(aO, aD, entidadAux, entCopia, tamBloque);
                        break;
                        case 4://Mantenimiento en Hash Estática
                            MantenimientoHashEstatica(aO, aD, entidadAux, entCopia, tamBloque);
                        break;
                        case 5://Mantenimiento en hash Dinámica
                            MantenimientoHashDinamica(aO, aD, entidadAux, entCopia, tamBloque);
                        break;
                    }
                }
                entidadAux = entidadAux.getSigEnt();
                entCopia = entCopia.getSigEnt();
            }

            aO.CerrarArchivo();
            aD.CerrarArchivo();

            File.Delete(nameFileO);//Se elimina la organizacion a la que se le hizo mantenimiento
            File.Move(nameFileN,nameFileO);//Se mueve el archivo creado a la ruta de la orgnizacion que fue mantenida
            //Se conserva el mismo nombre de archivo
        }