Exemplo n.º 1
0
        private void EscribirArbolAudiovisual(BNodo <string, Audiovisual> nodo, int grado, ref int contador, int contadorPadre, ref StreamWriter writer, string ruta, BNodo <string, Audiovisual> raiz)
        {
            string linea;

            linea = $"{contador.ToString("000;-000")}|{contadorPadre.ToString("000;-000")}";
            for (int i = 0; i < grado; i++)
            {
                linea += $"|{String.Format("{0, -3}", "")}";
            }
            for (int i = 0; i < nodo.Entradas.Count(); i++)
            {
                Audiovisual item = nodo.Entradas[i].Apuntador;
                linea += $"|{item.ToFixedSizeString()}";
            }
            for (int i = nodo.Entradas.Count(); i < (grado - 1); i++)
            {
                linea += $"|{String.Format("{0, -66}", "")}";
            }
            writer.WriteLine(linea);
            if (nodo != raiz)
            {
                writer.Close();
                ReescribirArchivo(contadorPadre, contador, ruta);
                writer = new StreamWriter(ruta, true);
            }

            contador++;
            int contadorHijos;

            contadorHijos = 0;
            contadorPadre = contador - 1;
            foreach (var item in nodo.Hijos)
            {
                EscribirArbolAudiovisual(nodo.Hijos[contadorHijos], grado, ref contador, contadorPadre, ref writer, ruta, raiz);
                contadorHijos++;
            }
        }