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(); }
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; } }
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"); } }