public void InsertarNodo(BNode <TKey, T> nodo, string filename, bool actualizar) { fileStream = new FileStream(filename + ".txt", FileMode.OpenOrCreate, FileAccess.ReadWrite); // Posición para escribir PosicionLinea = EncabezadoTamaño + (nodo.Posi - 1) * (34 + (11 * nodo.Grado + (nodo.Grado - 1)) + (36 * (nodo.Grado - 1) + (nodo.Grado - 2)) + (36 * (nodo.Grado - 1) + (nodo.Grado - 1))); // Se proporciona la posición fileStream.Seek(PosicionLinea, SeekOrigin.Begin); // Escritura StreamWriter NodoEscribir = new StreamWriter(fileStream); if (actualizar == true) { NodoEscribir.Write(FabricaDeTexto <TKey, T> .obtenerFormatoTexto().FormatoNumerico(nodo.Posi) + "|" + FabricaDeTexto <TKey, T> .obtenerFormatoTexto().FormatoNumerico(nodo.Padre) + "|||" + FabricaDeTexto <TKey, T> .obtenerFormatoTexto().HijoLista(nodo.ApuntaHijo, nodo.Grado) + "||" + FabricaDeTexto <TKey, T> .obtenerFormatoTexto().ListadoLlaves(nodo.Llave, nodo.Grado) + "||" + FabricaDeTexto <TKey, T> .obtenerFormatoTexto().ListadoAtributos(nodo.Datos, nodo.Grado)); } else { NodoEscribir.WriteLine(FabricaDeTexto <TKey, T> .obtenerFormatoTexto().FormatoNumerico(nodo.Posi) + "|" + FabricaDeTexto <TKey, T> .obtenerFormatoTexto().FormatoNumerico(nodo.Padre) + "|||" + FabricaDeTexto <TKey, T> .obtenerFormatoTexto().HijoLista(nodo.ApuntaHijo, nodo.Grado) + "||" + FabricaDeTexto <TKey, T> .obtenerFormatoTexto().ListadoLlaves(nodo.Llave, nodo.Grado) + "||" + FabricaDeTexto <TKey, T> .obtenerFormatoTexto().ListadoAtributos(nodo.Datos, nodo.Grado)); } NodoEscribir.Close(); }
public void ConstruccionEncabezado(string NombreArchivo, int Raiz, int Posi, int Tamaño, int Grado, int Altura) { fileStream = new FileStream(NombreArchivo + ".txt", FileMode.OpenOrCreate, FileAccess.ReadWrite); StreamWriter EncabezadoEscribir = new StreamWriter(fileStream); EncabezadoEscribir.WriteLine(FabricaDeTexto <TKey, T> .obtenerFormatoTexto().FormatoNumerico(Raiz)); EncabezadoEscribir.WriteLine(FabricaDeTexto <TKey, T> .obtenerFormatoTexto().FormatoNumerico(Posi)); EncabezadoEscribir.WriteLine(FabricaDeTexto <TKey, T> .obtenerFormatoTexto().FormatoNumerico(Tamaño)); EncabezadoEscribir.WriteLine(FabricaDeTexto <TKey, T> .obtenerFormatoTexto().FormatoNumerico(Grado)); EncabezadoEscribir.WriteLine(FabricaDeTexto <TKey, T> .obtenerFormatoTexto().FormatoNumerico(Altura)); EncabezadoEscribir.Close(); }