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); }
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); }