//Llama al método que se encarga de leer el bloque principal public void Abrir(char t, BinaryReader br) { if (TipoIndice == 1) { prim = new Primario(t); prim.LeePrincipal(br); } }
public VistaIndice(Entidad e) { InitializeComponent(); entidad = e; p = e.Prim; s = e.Sec; foreach (var a in e.Atrib) { switch (a.TipoIndice) { case 2: indice = a.Ind; p = (Primario)indice; break; /*case 3: * indice = a.Ind; * if (s == null) * s = new List<Secundario>(); * s.Add((Secundario)indice); * break;*/ } } Atributo z = e.Atrib.Find(o => o.TipoIndice == 6); if (z != null && z.DirAtributo != -1) { h = (HashDinamico)z.Ind; } if (p != null) { carga(); } if (s != null) { cargaSec(); } if (h != null) { hash(); } }
//Metodo para inicializar la instancia de primario public void CreaIndice(char t, BinaryWriter bw, long tam) { TamPrinPrim = tam; prim = new Primario(t); prim.CreaBloquePrincipal(bw); }
/*Escribir en memoria los datos del indice*/ public void asignaMemoriaDatosIndice() { bool ban = true; object o = new object(); long dat = 0; //MessageBox.Show("nombre archivo: " + nombreArchivoIndice); Fichero = new FileStream(nombreArchivoIndice, FileMode.Open, FileAccess.Read); binaryReader = new BinaryReader(Fichero); binaryReader.BaseStream.Seek(entidades[pos].atributos[indice1].direccion_Indice, SeekOrigin.Begin); while (ban) { switch (entidades[pos].atributos[indice1].tipo_Dato) { case 'E': o = binaryReader.ReadInt32(); break; case 'C': char[] c = binaryReader.ReadChars(entidades[pos].atributos[indice1].longitud_Tipo); o = new string(c); break; case 'F': o = binaryReader.ReadSingle(); break; } dat = binaryReader.ReadInt64(); primario = new Primario(o, dat, entidades[pos].atributos[indice1]); entidades[pos].primarios.Add(primario); entidades[pos].primarios.Last().primario_Iteracion += 1; for (int i = 1; i < numeroDeIteracion(entidades[pos].atributos[indice1].longitud_Tipo); ++i) { switch (entidades[pos].atributos[indice1].tipo_Dato) { case 'E': o = binaryReader.ReadInt32(); break; case 'C': char[] c = binaryReader.ReadChars(entidades[pos].atributos[indice1].longitud_Tipo); o = new string(c); break; case 'F': o = binaryReader.ReadSingle(); break; } dat = binaryReader.ReadInt64(); if (dat != -1) { entidades[pos].primarios.Last().primario_Iteracion += 1; } entidades[pos].primarios.Last().AddIndice(o, dat, entidades[pos].atributos[indice1]); } dat = binaryReader.ReadInt64(); entidades[pos].primarios.Last().apuntador_Siguiente = dat; // MessageBox.Show("DAT asigna memoria indice primario: " + dat); if (dat == -1) { ban = false; } else { binaryReader.BaseStream.Seek(dat, SeekOrigin.Begin); } } Fichero.Close(); }