internal void EscrituraEnDiscoNodo(string Ruta, int raiz) { using (var _FileStream = new FileStream(Ruta, FileMode.Open)) { int posicion = BusquedaPosicion(raiz); byte[] buffer = GeneradorData.ConvertToBytes(ParaAjusteTamanoCadena()); int medida = TamanoTextoCorregido(); _FileStream.Seek(posicion, SeekOrigin.Begin); _FileStream.Write(buffer, 0, medida); } }
private void EscrituraEncabezado() { Encabezado encabezado = new Encabezado { Raiz = this.Raiz, SiguientePosicion = this.UltimaPosicion, Order = this.Orden }; using (var _fs = new FileStream(this.Ruta, FileMode.OpenOrCreate)) { _fs.Seek(0, SeekOrigin.Begin); _fs.Write(GeneradorData.ConvertToBytes(encabezado.ParaAjusteTamanoCadena()), 0, encabezado.AjusteTamanoCadena); } }
public ArbolBStar(int _Orden, string _Ruta, ICreateFixedSizeText <T> _createFixedSizeText) { this.createFixedSizeText = _createFixedSizeText; this.Orden = _Orden; this.Ruta = _Ruta; Nodo <T> Raiz = CreacionDelNodo(Orden); Encabezado _Encabezado = CreacionDelEncabezado(Orden); this.UltimaPosicion = _Encabezado.SiguientePosicion; using (var _FileStream = new FileStream(_Ruta, FileMode.OpenOrCreate)) { _FileStream.Write(GeneradorData.ConvertToBytes(_Encabezado.ParaAjusteTamanoCadena()), 0, _Encabezado.AjusteTamanoCadena); _FileStream.Write(GeneradorData.ConvertToBytes(Raiz.ParaAjusteTamanoCadena()), 0, Raiz.TamanoTextoCorregido()); } }
public ArbolBStar(int _Orden, string _Ruta, ICreateFixedSizeText <T> createFixedSizeText, int C) { this.Orden = _Orden; this.Ruta = _Ruta; this.createFixedSizeText = createFixedSizeText; var buffer = new byte[Encabezado.tamanoAjustado]; using (var _FileStream = new FileStream(_Ruta, FileMode.OpenOrCreate)) { _FileStream.Read(buffer, 0, Encabezado.tamanoAjustado); } var EncabezadoCadena = GeneradorData.ConvertToString(buffer); var valores = EncabezadoCadena.Split(MetodosNecesarios.Separador); this.Raiz = Convert.ToInt16(valores[0]); this.Orden = Convert.ToInt16(valores[1]); this.UltimaPosicion = Convert.ToInt16(valores[2]); }
internal Nodo <T> LecturaNodo(string Ruta, int Order, int Raiz, int ID, ICreateFixedSizeText <T> createFixedSizeText) { int Padre = 0; if (ID == Raiz) { Padre = MetodosNecesarios.NullPointer; } Nodo <T> nodo = new Nodo <T>(Order, ID, Padre, createFixedSizeText); int TamanoEncabezado = Encabezado.tamanoAjustado; byte[] buffer; if (ID <= Raiz) { buffer = new byte[nodo.TamanoCorregido(nodo.Padre)]; using (var _FileStream = new FileStream(Ruta, FileMode.OpenOrCreate)) { _FileStream.Seek((TamanoEncabezado + (Raiz - 1) * nodo.TamanoCorregido(nodo.Padre)), SeekOrigin.Begin); _FileStream.Read(buffer, 0, nodo.TamanoCorregido(nodo.Padre)); } } buffer = new byte[nodo.TamanoCorregido(nodo.Padre)]; using (var _FileStream = new FileStream(Ruta, FileMode.OpenOrCreate)) { _FileStream.Seek((TamanoEncabezado + ((Raiz - 1) * nodo.TamanoCorregido(nodo.Padre)) + nodo.TamanoCorregido(MetodosNecesarios.NullPointer)), SeekOrigin.Begin); _FileStream.Read(buffer, 0, nodo.TamanoCorregido(nodo.Padre)); } var CadenaNodo = GeneradorData.ConvertToString(buffer); var valor = CadenaNodo.Split(MetodosNecesarios.Separador); nodo.Padre = Convert.ToInt32(valor[1]); int LimitacionData = Order; if (nodo.Padre.Equals(MetodosNecesarios.NullPointer)) { LimitacionData = (4 * (Order - 1)) / 3; int j = 0; for (int i = 2; i < LimitacionData + 2; i++) { nodo.Data[j] = createFixedSizeText.Create(valor[i]); j++; } j = 0; int LimitacionInicial = nodo.Data.Count + 2; for (int i = LimitacionInicial; i < valor.Length; i++) { nodo.Hijos[j] = Convert.ToInt32(valor[i]); j++; } } else { int j = 0; for (int i = 2; i < LimitacionData + 1; i++) { nodo.Data[j] = createFixedSizeText.Create(valor[i]); j++; } j = 0; int LimiteInicial = nodo.Data.Count + 2; for (int i = LimiteInicial; i < valor.Length; i++) { nodo.Hijos[i] = Convert.ToInt32(valor[i]); j++; } } return(nodo); }