/*Asignar datos en la memoria*/ public void asignaDatosDat() { try { bool ban = true; bool banA; long dat = 0; int nA = entidades.ElementAt(pos).atributos.Count() - 1; Fichero = new FileStream(nombreArchivoDAT, FileMode.Open, FileAccess.Read); binaryReader = new BinaryReader(Fichero); binaryReader.BaseStream.Seek(entidades.ElementAt(pos).direccion_Dato, SeekOrigin.Begin); while (ban) { dat = binaryReader.ReadInt64(); registro = new Registro(dat); entidades.ElementAt(pos).registros.Add(registro); banA = true; int i = 0; while (banA) { switch (entidades.ElementAt(pos).atributos[i].tipo_Dato) { case 'E': int en = binaryReader.ReadInt32(); entidades.ElementAt(pos).registros.Last().element_Registro.Add(en); break; case 'C': char[] c = binaryReader.ReadChars(entidades.ElementAt(pos).atributos[i].longitud_Tipo); string cadena = new string(c); entidades.ElementAt(pos).registros.Last().element_Registro.Add(cadena); break; } if (i < nA) { i++; } else { banA = false; } } dat = binaryReader.ReadInt64(); entidades.ElementAt(pos).registros.Last().dir_sigRegistro = dat; if (dat == -1) { ban = false; } else { binaryReader.BaseStream.Seek(dat, SeekOrigin.Begin); } } Fichero.Close(); } catch (Exception e) { MessageBox.Show(e.Message); } }
private bool cumpleWhere(Registro regis) { int posAux = buscaAtributo(WhereList[0]); int comp = Convert.ToInt32(WhereList[2]); bool band = false; switch (WhereList[1]) { case "=": if (Convert.ToInt32(regis.element_Registro[posAux]) == comp) { band = true; } else { band = false; } break; case ">": if (Convert.ToInt32(regis.element_Registro[posAux]) > comp) { band = true; } else { band = false; } break; case "<": if (Convert.ToInt32(regis.element_Registro[posAux]) < comp) { band = true; } else { band = false; } break; case ">=": if (Convert.ToInt32(regis.element_Registro[posAux]) >= comp) { band = true; } else { band = false; } break; case "<=": if (Convert.ToInt32(regis.element_Registro[posAux]) <= comp) { band = true; } else { band = false; } break; case "<>": if (Convert.ToInt32(regis.element_Registro[posAux]) != comp) { band = true; } else { band = false; } break; } return(band); }