示例#1
0
        public void ordena()
        {
            List <string> aux = new List <string>();

            for (int i = 0; i < todosDatos.Count; i++)
            {
                aux.Add(todosDatos[i][campocve].Replace("\0", ""));
            }
            int antDat = -1;

            aux.Sort();
            if (clave)
            {
                for (int i = 0; i < aux.Count; i++)
                {
                    for (int j = 0; j < todosDatos.Count; j++)
                    {
                        if (aux[i].Replace("\0", "") == todosDatos[j][campocve].Replace("\0", ""))
                        {
                            if (i == 0)
                            {
                                entidades[sele].DirDatos = Convert.ToInt64(todosDatos[j][0]);
                                dic.escribeEntidad(entidades[sele].DirEnt, entidades[sele]);
                            }
                            else
                            {
                                todosDatos[antDat][todosDatos[antDat].Count - 1] = todosDatos[j][0];
                            }
                            antDat = j;
                            j      = todosDatos.Count + 1;
                        }
                    }
                }

                for (int i = 0; i < aux.Count; i++)
                {
                    if (aux[aux.Count - 1].Replace("\0", "") == todosDatos[i][campocve].Replace("\0", ""))
                    {
                        todosDatos[i][todosDatos[i].Count - 1] = "-1";
                        break;
                    }
                }
            }
            else
            {
                for (int j = 0; j < todosDatos.Count; j++)
                {
                    if (todosDatos.Count - 1 == j)
                    {
                        todosDatos[j][todosDatos[j].Count - 1] = "-1";
                        break;
                    }
                    else
                    {
                        todosDatos[j][todosDatos[j].Count - 1] = todosDatos[j + 1][0];
                    }
                }
            }
            sobreEscribe();
        }
示例#2
0
        private void crearEntidad()
        {
            flagSelE = false;
            string auxtablaa = tb_nombreEnt.Text;

            entidadA = auxtablaa.ToLower();;

            Entidad tentidad = new Entidad(entidadA, ArchivoBin.dir, -1, -1, -1);

            entidadT.Add(tentidad);
            String creaDatos = carpeta + @"\" + tentidad.IdHex + ".dat";

            if (File.Exists(@creaDatos))
            {
                MessageBox.Show("La Entidad existe");
            }
            else
            {
                using (FileStream archivo = new FileStream(creaDatos, FileMode.Create))
                {
                    archivo.Close();
                }


                if (flagCab == false)
                {
                    dirCab = ArchivoBin.dir;
                    escribeCabecera(ArchivoBin.dir);
                    flagCab = true;
                }

                archBB.escribeEntidad(ArchivoBin.dir, tentidad);
                cb_SelEnt.Items.Add(tb_nombreEnt.Text);
                ordenaEntidades();
                MessageBox.Show("Entidad creada");
                actualizaTablas();
                ArchivoBin.dir += 72;
            }
        }
示例#3
0
        private void bt_nuevoAtrib_Click(object sender, EventArgs e)
        {
            String nameAuxiliar = tb_nombreAtrib.Text;
            String name         = nameAuxiliar.ToLower();
            int    nTab         = 0;

            for (int j = 0; j < entidadT.Count; j++)
            {
                if (entidadActual == entidadT[j].NombreEnt.Replace("\0", " ").Replace(" ", ""))
                {
                    nTab = j;
                    j    = entidadT.Count + 1;
                }
            }
            if (!entidadT[nTab].Datos)
            {
                if (!entidadT[nTab].Primaria || Cb_Index.Text == "0(Sin_tipo)" || Cb_Index.Text == "1(Clave_de_busqueda)" || Cb_Index.Text == "3(Indice_secundario)")
                {
                    if (!entidadT[nTab].Cve_busqueda || Cb_Index.Text == "0(Sin_tipo)" || Cb_Index.Text == "2(Indice_primario)" || Cb_Index.Text == "3(Indice_secundario)")
                    {
                        if (!entidadT[nTab].Secundaria || Cb_Index.Text == "0(Sin_tipo)" || Cb_Index.Text == "2(Indice_primario)" || Cb_Index.Text == "1(Clave_de_busqueda)")
                        {
                            if (flagSelE == true)
                            {
                                if (comparaNombre(name) == true)
                                {
                                    string tipoS    = Cb_Dato.Text;
                                    string tipo     = Cb_Index.Text;
                                    int    atlong   = 0;
                                    int    atIndice = 0;
                                    switch (Cb_Index.Text)
                                    {
                                    case "0(Sin_tipo)":
                                        atIndice = 0;
                                        break;

                                    case "1(Clave_de_busqueda)":
                                        atIndice = 1;
                                        entidadT[nTab].Cve_busqueda = true;
                                        break;

                                    case "2(Indice_primario)":
                                        atIndice = 2;
                                        entidadT[nTab].Primaria = true;
                                        break;

                                    case "3(Indice_secundario)":
                                        entidadT[nTab].Secundaria = true;
                                        atIndice = 3;
                                        break;

                                    case "4(Arbol_primario)":
                                        atIndice = 4;
                                        break;

                                    case "5(Arbol_secundario)":
                                        atIndice = 5;
                                        break;
                                    }


                                    char tipoo = ' ';

                                    switch (Cb_Dato.Text)
                                    {
                                    case "Entero":
                                        tipoo  = 'e';
                                        atlong = 4;
                                        break;

                                    case "Cadena":
                                        tipoo  = 'c';
                                        atlong = Convert.ToInt32(tb_Long.Text);
                                        break;
                                    }
                                    atributosL.Add(name);
                                    Atributo auxAt = new Atributo(name, tipoo, atlong, atIndice, Convert.ToInt32(ArchivoBin.dir), -1, -1);
                                    //dataGridView1.Rows.Add(auxAt.IdHex, name, tipoo, atlong, ArchivoBin.dir, atIndice, -1, -1);
                                    if (atIndice == 2)
                                    {
                                        String creaDatos = carpeta + @"\" + auxAt.IdHex + ".idx";
                                        if (File.Exists(@creaDatos))
                                        {
                                            MessageBox.Show("La Entidad existe");
                                        }
                                        else
                                        {
                                            using (FileStream archivo = new FileStream(creaDatos, FileMode.Create))
                                            {
                                                archivo.Close();
                                            }
                                        }
                                    }

                                    if (atributosL.Count > 1)
                                    {
                                        atActual.DirSigAt = ArchivoBin.dir;
                                        archBB.escribeAtributo(atActual.DirAt, atActual);
                                    }
                                    else
                                    {
                                        entidadT[nTab].DirPriAt = ArchivoBin.dir;
                                        archBB.escribeEntidad(entidadT[nTab].DirEnt, entidadT[nTab]);
                                    }
                                    atActual = auxAt;
                                    archBB.escribeAtributo(atActual.DirAt, atActual);
                                    atribT.Add(atActual);
                                    ArchivoBin.dir += 73;
                                    actualizaTablas();
                                    comboBox1.Items.Add(atActual.NombreAt);
                                    tb_nombreAtrib.Clear();
                                    tb_Long.Clear();
                                    Cb_Dato.Text  = "";
                                    Cb_Index.Text = "";
                                }

                                else
                                {
                                    MessageBox.Show("El atributo ya existe");
                                }
                            }

                            else
                            {
                                MessageBox.Show("No se ha seleccionado Entidad");
                            }
                        }
                        else
                        {
                            MessageBox.Show("Ya tiene un indice secundario");
                        }
                    }
                    else
                    {
                        MessageBox.Show("Ya tiene una Clave de busqueda");
                    }
                }
                else
                {
                    MessageBox.Show("Ya tiene un indice primario");
                }
            }
            else
            {
                MessageBox.Show("No se pueden crear mas atributos ya existen datos");
            }
        }