コード例 #1
0
        private string listaCadenas(List <TData> s)
        {
            string chain = "";

            for (int i = 0; i < Orden - 1; i++)
            {
                string aux = "";
                if (i < s.Count)
                {
                    IList <string> valuesFromData = retornarDatos(s[i]);
                    IList <int>    valuesLenght   = retornarTamanioDatos();
                    for (int j = 0; j < valuesFromData.Count; j++)
                    {
                        aux += Generador.tamanioDatosFijos(valuesFromData[j], valuesLenght[j]) + "#";
                    }
                    chain += aux.Remove(aux.Length - 1) + "|";
                }
                else
                {
                    IEnumerable <int> valuesFromData = retornarTamanioDatos();
                    foreach (var item in valuesFromData)
                    {
                        aux += Generador.hacerNuloDatos(item) + "~";
                    }
                    chain += aux.Remove(aux.Length - 1) + "|";
                }
            }
            return(chain);
        }
コード例 #2
0
        public nodoB <TKey, TData> AccessTonodoB(int posicionPrincipal)
        {
            if (posicionPrincipal == Generador.hacerNulo())
            {
                return(null);
            }
            int saltos = 0;

            saltos = saltarLineasYEncabezados(posicionPrincipal);
            StreamReader reader = new StreamReader(archivoArbol);

            reader.BaseStream.Seek(saltos, SeekOrigin.Begin);
            string[]            nodoBLine = reader.ReadLine().Split('|');
            nodoB <TKey, TData> AuxnodoB  = new nodoB <TKey, TData>(Orden, int.Parse(nodoBLine[0]), tamanioMaximoLlave);

            for (int i = 1; i < Orden; i++)
            {
                if (nodoBLine[i] != Generador.hacerNuloLlaves(tamanioMaximoLlave))
                {
                    AuxnodoB.nodoLlaves.Add(ConverterStringToTkey(Generador.retornarLlaveOriginal(nodoBLine[i])));
                }
            }
            int condicion = (Orden);

            for (int i = condicion; i < condicion + (Orden - 1); i++)
            {
                if (nodoBLine[i] != Generador.hacerNuloDatos(GetMaxLenghtData(retornarTamanioDatos())) || nodoBLine[i].Contains('#'))
                {
                    AuxnodoB.datosNodo.Add(ConverterStringToTData(Generador.retornarDatosOriginales(nodoBLine[i])));
                }
            }
            condicion     += (Orden - 1);
            AuxnodoB.Padre = int.Parse(nodoBLine[condicion]);
            condicion     += 1;
            int c = 0;

            for (int i = condicion; i < condicion + Orden; i++)
            {
                AuxnodoB.Hijos[c++] = int.Parse(nodoBLine[i]);
            }
            return(AuxnodoB);
        }