private void ConsultaEntidad_Load(object sender, EventArgs e)
 {
     foreach (Entidad busca in this.archivo.Entidades)
     {
         comboBoxEntidades.Items.Add(MetodosAuxiliares.truncaCadena(busca.Nombre));
     }
 }
        private void actualizaDataGridSQLConSelect(Entidad entidad, List <Atributo> atributos, List <Registro> registros, bool band)
        {
            int i;
            int j;

            string[] tupla;
            i     = 0;
            tupla = new string[atributos.Count];
            dataGridSQL.Columns.Clear();
            dataGridSQL.ColumnCount = 0;
            dataGridSQL.Rows.Clear();
            dataGridSQL.ColumnCount = atributos.Count;
            foreach (Atributo atributo in atributos)
            {
                if (band)
                {
                    dataGridSQL.Columns[i].Name = MetodosAuxiliares.truncaCadena(atributo.Nombre) + " - " + MetodosAuxiliares.truncaCadena(atributo.Entidad);
                }
                else
                {
                    dataGridSQL.Columns[i].Name = MetodosAuxiliares.truncaCadena(atributo.Nombre);
                }
                i++;
            }

            foreach (Registro registro in registros)
            {
                for (int k = 0; k < tupla.Length; k++)
                {
                    j        = entidad.buscaIndiceAtributo(atributos[k].Nombre, atributos[k].Entidad);
                    tupla[k] = MetodosAuxiliares.truncaCadena(registro.Datos[j]);
                }
                dataGridSQL.Rows.Add(tupla);
            }
        }
        private void SeleccionRegistro_Load(object sender, EventArgs e)
        {
            this.comboEntidades.Items.Clear();
            bool   band;
            string primeraLlave;

            band = entidad.Atributos[entidad.buscaIndiceClavePrimaria()].Tipo.Equals('C');
            foreach (string key in this.entidad.LlavePrimaria)
            {
                if (band)
                {
                    this.comboEntidades.Items.Add(MetodosAuxiliares.truncaCadena(key));
                }
                else
                {
                    this.comboEntidades.Items.Add(key);
                }
            }
            primeraLlave = this.entidad.LlavePrimaria.First();
            if (band)
            {
                primeraLlave = MetodosAuxiliares.truncaCadena(primeraLlave);
            }
            this.comboEntidades.Text = primeraLlave;
        }
Example #4
0
        public void altaHash(string llave, long direccion, string directorio)
        {
            bool band;

            band = false;
            band = this.tipo.Equals('C');
            if (this.dirIndice == -1)
            {
                HashEstatica hash;
                hash = new HashEstatica(this.nombre, this.dirIndice, this.longitud, -1, band);
                this.indices.Add(hash);
                this.dirIndice = MetodosAuxiliares.ultimaDireccionDeArchivo(directorio);
                this.grabaDireccionesHash(directorio, hash);
                for (int i = 0; i < hash.Direcciones.Length; i++)
                {
                    hash.Direcciones[i] = MetodosAuxiliares.ultimaDireccionDeArchivo(directorio);
                    this.grabaApuntadoresHash(directorio, hash, hash.Direcciones[i], i);
                }
                this.grabaDireccionesHash(directorio, hash);
            }
            int idx;

            idx = ((HashEstatica)this.indices.First()).alta(band, MetodosAuxiliares.truncaCadena(llave).ToCharArray(), this.longitud, direccion);
            this.grabaApuntadoresHash(directorio, ((HashEstatica)this.indices.First()), ((HashEstatica)this.indices.First()).Direcciones[idx], idx);
        }
        private void actualizaDataGridRegistros(Entidad entidad)
        {
            dataGridRegistros.Columns.Clear();
            dataGridRegistros.ColumnCount = 0;
            dataGridRegistros.Rows.Clear();
            dataGridRegistros.ColumnCount     = entidad.Atributos.Count + 2;
            dataGridRegistros.Columns[0].Name = "Dirección Actual";
            dataGridRegistros.Columns[dataGridRegistros.ColumnCount - 1].Name = "Dirección Siguiente";
            int i;

            i = 1;
            foreach (Atributo atributo in entidad.Atributos)
            {
                dataGridRegistros.Columns[i].Name = MetodosAuxiliares.truncaCadena(atributo.Nombre);
                i++;
            }
            i = 0;
            foreach (Registro registro in entidad.Valores)
            {
                int j = 1;
                int k = 0;
                dataGridRegistros.Rows.Add();
                dataGridRegistros.Rows[i].Cells[0].Value = registro.DirAct;
                dataGridRegistros.Rows[i].Cells[dataGridRegistros.ColumnCount - 1].Value = registro.DirSig;
                foreach (Atributo atributo in entidad.Atributos)
                {
                    dataGridRegistros.Rows[i].Cells[j].Value = MetodosAuxiliares.truncaCadena(registro.Datos[k++]);
                    j++;
                }
                i++;
            }
        }
Example #6
0
 private void Consulta_Click(object sender, EventArgs e)
 {
     this.listBoxAtributos.Items.Clear();
     if (!string.IsNullOrEmpty(this.comboBoxEntidades.Text))
     {
         Registro registro;
         string   llave;
         llave = this.comboBoxEntidades.Text;
         if (this.band)
         {
             llave = MetodosAuxiliares.ajustaCadena(llave, this.tam);
         }
         registro = this.entidad.Registros[llave];
         if (registro != null)
         {
             this.textBoxDirAct.Text = registro.DirAct.ToString();
             this.textBoxDirSig.Text = registro.DirSig.ToString();
             foreach (string dato in registro.Datos)
             {
                 this.listBoxAtributos.Items.Add(MetodosAuxiliares.truncaCadena(dato));
             }
         }
     }
     else
     {
         MessageBox.Show("Por favor seleccione una entidad", "Error");
     }
 }
 private void Consulta_Click(object sender, EventArgs e)
 {
     if (!string.IsNullOrEmpty(comboBoxEntidades.Text))
     {
         string aux = MetodosAuxiliares.ajustaCadena(comboBoxEntidades.Text, Constantes.tam);
         foreach (Entidad entidad in this.archivo.Entidades)
         {
             if (aux.Equals(entidad.Nombre))
             {
                 textBoxDirAct.Text   = entidad.DirActual.ToString();
                 textBoxDirAtrib.Text = entidad.DirAtributos.ToString();
                 textBoxDirReg.Text   = entidad.DirRegistros.ToString();
                 textBoxDirSig.Text   = entidad.DirSig.ToString();
                 listBoxAtributos.Items.Clear();
                 foreach (Atributo atributo in entidad.Atributos)
                 {
                     listBoxAtributos.Items.Add(MetodosAuxiliares.truncaCadena(atributo.Nombre));
                 }
             }
         }
     }
     else
     {
         MessageBox.Show("Por favor seleccione una entidad");
     }
 }
 private void ModificaAtributo_Load(object sender, EventArgs e)
 {
     foreach (Entidad entidad in this.archivo.Entidades)
     {
         this.comboBox1.Items.Add(MetodosAuxiliares.truncaCadena(entidad.Nombre));
         comboEntidad.Items.Add(MetodosAuxiliares.truncaCadena(entidad.Nombre));
     }
 }
        public List <string> obtenLllavesEntidad(long direccion, ref string entidad)
        {
            Entidad referencia;

            referencia = this.archivo.buscaEntidad(direccion);
            entidad    = MetodosAuxiliares.truncaCadena(referencia.Nombre);
            return(referencia.LlavePrimaria);
        }
 private void EliminarAtributo_Load(object sender, EventArgs e)
 {
     this.comboEntidad.Items.Clear();
     foreach (Entidad busca in archivo.Entidades)
     {
         this.comboEntidad.Items.Add(MetodosAuxiliares.truncaCadena(busca.Nombre));
     }
 }
 public SeleccionEntidad(Archivo archivo)
 {
     entidades = new List <string>();
     foreach (Entidad entidad in archivo.Entidades)
     {
         this.entidades.Add(MetodosAuxiliares.truncaCadena(entidad.Nombre));
     }
     InitializeComponent();
 }
Example #12
0
        public void altaRegistro(string directorio, List <string> informacion)
        {
            try
            {
                if (this.existeClaveDeBusqueda() && this.existeIndicePrimario())
                {
                    int        indiceLlavePrimaria;
                    long       dir;
                    string     archivoDat;
                    string     archivoIdx;
                    Registro   registro;
                    FileStream abierto;
                    archivoDat          = directorio + "\\" + MetodosAuxiliares.truncaCadena(this.nombre) + ".dat";
                    archivoIdx          = directorio + "\\" + MetodosAuxiliares.truncaCadena(this.nombre) + ".idx";
                    indiceLlavePrimaria = this.buscaIndiceClavePrimaria();
                    abierto             = new FileStream(archivoDat, FileMode.Append); //abre el archivo en un file stream
                    dir = (long)abierto.Seek(0, SeekOrigin.End);                       //Calcula la direccion final del archivo y lo mete en un long
                    abierto.Close();                                                   //Cierra el file Strea
                    registro = new Registro(dir, informacion);
                    this.registros.Add(informacion[indiceLlavePrimaria], registro);
                    int i;
                    i = -1;
                    foreach (Atributo atributo in this.atributos)
                    {
                        i++;
                        switch (atributo.Indice)
                        {
                        case 2:    //Indice Primario
                            atributo.altaIndicePrimario(informacion[indiceLlavePrimaria], dir, archivoIdx);
                            break;

                        case 4:    //Indice Secundario
                            atributo.altaIndiceSecundario(informacion[i], dir, archivoIdx);
                            break;

                        case 5:
                            atributo.altaHash(informacion[i], dir, archivoIdx);
                            break;
                        }
                    }
                    this.ajustaDireccionesRegistros();
                    foreach (Registro registroAux in this.registros.Values)
                    {
                        this.grabaRegistro(registroAux, archivoDat);
                    }
                }
                else
                {
                    MessageBox.Show("Falta un atributo llave primaria o clave de busqueda", "Error");
                }
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
            }
        }
 private void comboEntidad_SelectedIndexChanged(object sender, EventArgs e)
 {
     entidad = archivo.buscaEntidad(MetodosAuxiliares.ajustaCadena(this.comboEntidad.Text, Constantes.tam));
     comboAtributo.Items.Clear();
     comboAtributo.Text = "";
     foreach (Atributo atributo in entidad.Atributos)
     {
         comboAtributo.Items.Add(MetodosAuxiliares.truncaCadena(atributo.Nombre));
     }
 }
        private void comboAtributo_SelectedIndexChanged(object sender, EventArgs e)
        {
            Atributo atributo;

            atributo = entidad.buscaAtributo(MetodosAuxiliares.ajustaCadena(comboAtributo.Text, Constantes.tam));
            this.textBoxNombre.Text = MetodosAuxiliares.truncaCadena(atributo.Nombre);
            this.comboBoxTipo.Text  = atributo.Tipo.ToString();
            this.textBoxLong.Text   = atributo.Longitud.ToString();
            this.comboInidice.Text  = comboInidice.Items[atributo.Indice].ToString();
        }
 public AltaAtributo(Archivo archivo)
 {
     this.entidades = new List <string>();
     this.archivo   = archivo;
     foreach (Entidad entidad in archivo.Entidades)
     {
         this.entidades.Add(MetodosAuxiliares.truncaCadena(entidad.Nombre));
     }
     InitializeComponent();
 }
 private void actualizaComboEntidadRegistros()
 {
     this.comboBoxEntidad.Items.Clear();
     foreach (Entidad entidad in archivo.Entidades)
     {
         if (entidad.DirRegistros != -1)
         {
             this.comboBoxEntidad.Items.Add(MetodosAuxiliares.truncaCadena(entidad.Nombre));
         }
     }
 }
 private void actualizaComboIndiceSecundario(Entidad entidad)
 {
     this.comboBoxAtributosSecundarios.Items.Clear();
     foreach (Atributo atributo in entidad.Atributos)
     {
         if (atributo.Indice == 4)
         {
             this.comboBoxAtributosSecundarios.Items.Add(MetodosAuxiliares.truncaCadena(atributo.Nombre));
         }
     }
     if (this.comboBoxAtributosSecundarios.Items.Count > 0)
     {
         this.comboBoxAtributosSecundarios.Text = this.comboBoxAtributosSecundarios.Items[0].ToString();
     }
 }
        public bool estaVacio()
        {
            bool band;

            band = true;
            foreach (string llave in this.llaves)
            {
                if (!("-1").Equals(MetodosAuxiliares.truncaCadena(llave)))
                {
                    band = false;
                    break;
                }
            }
            return(band);
        }
        private int espacioLibre()
        {
            int j;

            j = -1;
            for (int i = 0; i < this.llaves.Length; i++)
            {
                if (MetodosAuxiliares.truncaCadena(this.llaves[i]).Equals("-1"))
                {
                    j = i;
                    break;
                }
            }
            return(j);
        }
 private void actualizaDataGreedEntidad()
 {
     dataGridEntidad.Rows.Clear();
     if (dataGridEntidad.Columns.Count > 0)
     {
         foreach (Entidad entidad in archivo.Entidades)
         {
             dataGridEntidad.Rows.Add(MetodosAuxiliares.truncaCadena(entidad.Nombre),
                                      entidad.DirActual,
                                      entidad.DirRegistros,
                                      entidad.DirAtributos,
                                      entidad.DirSig);
         }
     }
 }
Example #21
0
        private void ConsultaRegistro_Load(object sender, EventArgs e)
        {
            this.band = this.entidad.Atributos[this.entidad.buscaIndiceClavePrimaria()].Tipo.Equals('C');
            this.tam  = this.entidad.Atributos[this.entidad.buscaIndiceClavePrimaria()].Longitud;
            string llaveAux;

            foreach (string llave in this.entidad.LlavePrimaria)
            {
                llaveAux = llave;
                if (band)
                {
                    llaveAux = MetodosAuxiliares.truncaCadena(llaveAux);
                }
            }
        }
Example #22
0
 public void elimminaHash(string llave, long direccion, string directorio)
 {
     if (this.dirIndice != -1)
     {
         bool band;
         int  idx;
         band = this.tipo.Equals('C');
         HashEstatica hash;
         hash = ((HashEstatica)this.indices.First());
         idx  = hash.baja(band, MetodosAuxiliares.truncaCadena(llave).ToCharArray(), this.longitud, direccion);
         this.grabaApuntadoresHash(directorio, hash, hash.Direcciones[idx], idx);
         if (hash.vacio())
         {
             this.dirIndice = -1;
         }
     }
 }
Example #23
0
 public void leeRegistros(string directorio)
 {
     try
     {
         Registro      registro;
         List <string> informacion = new List <string>();
         int           i;
         long          dirSig;
         directorio += "\\" + MetodosAuxiliares.truncaCadena(this.nombre) + ".dat";
         i           = 0;
         dirSig      = this.dirRegistros;
         while (dirSig != -1)
         {
             using (reader = new BinaryReader(new FileStream(directorio, FileMode.Open))) //Abre el archivo con el BinaryWriter
             {
                 this.reader.ReadBytes((int)dirSig);                                      //Posiciona el grabado del archivo en la dirección actual
                 foreach (Atributo atributo in this.Atributos)
                 {
                     if (atributo.Tipo.Equals('E'))
                     {
                         informacion.Add(this.reader.ReadInt32().ToString());
                     }
                     else if (atributo.Tipo.Equals('D'))
                     {
                         informacion.Add(this.reader.ReadSingle().ToString());
                     }
                     else if (atributo.Tipo.Equals('C'))
                     {
                         informacion.Add(new string(this.reader.ReadChars(atributo.Longitud)));
                     }
                     i++;
                 }
                 registro = new Registro(dirSig, informacion);
                 dirSig   = registro.DirSig = this.reader.ReadInt64();
                 dirSig   = registro.DirSig = this.reader.ReadInt64();
                 this.registros.Add(informacion[this.buscaIndiceClavePrimaria()], registro);
                 informacion = new List <string>();
             }
         }
     }
     catch (Exception e)
     {
         MessageBox.Show(e.Message);
     }
 }
Example #24
0
 private void comboEntidad_SelectedIndexChanged(object sender, EventArgs e)
 {
     this.comboAtributo.Items.Clear();
     this.entidad = archivo.buscaEntidad(MetodosAuxiliares.ajustaCadena(this.comboEntidad.Text, Constantes.tam));
     foreach (Atributo buscando in entidad.Atributos)
     {
         comboAtributo.Items.Add(MetodosAuxiliares.truncaCadena(buscando.Nombre));
     }
     if (this.comboAtributo.Items.Count > 0)
     {
         this.comboAtributo.Text = this.comboAtributo.Items[0].ToString();
     }
     else
     {
         this.comboAtributo.Text = "";
         this.comboAtributo_SelectedIndexChanged(comboAtributo, null);
     }
 }
Example #25
0
 private void ConsultaAtributo_Load(object sender, EventArgs e)
 {
     this.comboEntidad.Items.Clear();
     foreach (Entidad busca in this.archivo.Entidades)
     {
         this.comboEntidad.Items.Add(MetodosAuxiliares.truncaCadena(busca.Nombre));
     }
     this.comboEntidad.Text = this.comboEntidad.Items[0].ToString();
     if (this.comboAtributo.Items.Count > 0)
     {
         this.comboAtributo.Text = this.comboAtributo.Items[0].ToString();
     }
     else
     {
         this.comboAtributo.Text = "";
         this.comboAtributo_SelectedIndexChanged(comboAtributo, null);
     }
 }
        private void ComboBoxAtributosHash_SelectedIndexChanged_1(object sender, EventArgs e)
        {
            Entidad entidad;

            entidad = archivo.buscaEntidad(MetodosAuxiliares.ajustaCadena(this.comboBoxEntidad.Text, Constantes.tam));
            this.dataGridHash.Rows.Clear();
            foreach (Atributo atributo in entidad.Atributos)
            {
                if (MetodosAuxiliares.truncaCadena(atributo.Nombre).Equals(this.ComboBoxAtributosHash.Text))
                {
                    foreach (Indice indice in atributo.Indices)
                    {
                        for (int i = 0; i < ((HashEstatica)indice).Direcciones.Length; i++)
                        {
                            this.dataGridHash.Rows.Add(i.ToString(), ((HashEstatica)indice).Direcciones[i].ToString());
                        }
                    }
                    break;
                }
            }
        }
 private void actualizaDataGreedAtrib()
 {
     dataGridAtrib.Rows.Clear();
     foreach (Entidad entidad in archivo.Entidades)
     {
         foreach (Atributo atributo in entidad.Atributos)
         {
             dataGridAtrib.Rows.Add(MetodosAuxiliares.truncaCadena(entidad.Nombre),
                                    MetodosAuxiliares.truncaCadena(atributo.Nombre),
                                    atributo.DirActual,
                                    atributo.Tipo,
                                    MetodosAuxiliares.traduceIndice(atributo.Indice),
                                    atributo.Longitud,
                                    atributo.DirIndice,
                                    atributo.DirSig);
         }
         if (entidad.Atributos.Count != 0)
         {
             dataGridAtrib.Rows.Add("-", "-", "-", "-", "-", "-", "-", "-");
         }
     }
 }
        private void DataGridHash_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            int              i;
            Entidad          entidad;
            Atributo         atributo;
            HashEstatica     hash;
            DataGridViewCell cell;

            cell     = dataGridHash.Rows[e.RowIndex].Cells[0];
            entidad  = this.archivo.buscaEntidad(MetodosAuxiliares.ajustaCadena(this.comboBoxEntidad.Text, Constantes.tam));
            atributo = entidad.buscaAtributo(MetodosAuxiliares.ajustaCadena(this.ComboBoxAtributosHash.Text, Constantes.tam));
            this.dataGridHashAuxiliar.Rows.Clear();
            i    = Int32.Parse(cell.Value.ToString());
            hash = ((HashEstatica)atributo.Indices.First());
            for (int j = 0; j < hash.Longitud; j++)
            {
                if (hash.Apuntadores[i, j] != -1)
                {
                    this.dataGridHashAuxiliar.Rows.Add(MetodosAuxiliares.truncaCadena(hash.Llaves[i, j]), hash.Apuntadores[i, j]);
                }
            }
        }
        private void ComboBoxAtributosForaneos_SelectedIndexChanged(object sender, EventArgs e)
        {
            Entidad entidad;

            entidad = archivo.buscaEntidad(MetodosAuxiliares.ajustaCadena(comboBoxEntidad.Text, Constantes.tam));
            this.dataGridSecundario.Rows.Clear();
            foreach (Atributo atributo in entidad.Atributos)
            {
                if (MetodosAuxiliares.truncaCadena(atributo.Nombre).Equals(this.comboBoxAtributosSecundarios.Text))
                {
                    foreach (Indice indice in atributo.Indices)
                    {
                        for (int i = 0; i < ((Secundario)indice).Llaves.Length; i++)
                        {
                            if (!MetodosAuxiliares.truncaCadena(((Secundario)indice).Llaves[i]).Equals("-1"))
                            {
                                this.dataGridSecundario.Rows.Add(MetodosAuxiliares.truncaCadena(((Secundario)indice).Llaves[i]), ((Secundario)indice).Direcciones[i]);
                            }
                        }
                    }
                    break;
                }
            }
        }
 public override string ToString()
 {
     return(MetodosAuxiliares.truncaCadena(this.llave) + "," + this.direccion.ToString());
 }