public Dictionary <char, CantidadChar> LecturaArchivoCompresion(Dictionary <char, CantidadChar> diccionario, string ArchivoLeido, int bufferLengt, ref List <byte> ListaByte) { //el siguiente if permite seleccionar un archivo en específico using (var stream = new FileStream(ArchivoLeido, FileMode.Open)) { //te va a devolver un numero cualquiera using (var reader = new BinaryReader(stream)) { var byteBuffer = new byte[bufferLengt]; while (reader.BaseStream.Position != reader.BaseStream.Length) { byteBuffer = reader.ReadBytes(bufferLengt); foreach (byte bit in byteBuffer) { CantidadChar cantidad = new CantidadChar(); if (!diccionario.ContainsKey((char)bit)) { cantidad.cantidad = 1; diccionario.Add((char)bit, cantidad); } else { diccionario[(char)bit].cantidad++; } ListaByte.Add(bit); } } } } return(diccionario); }
public Dictionary <char, CantidadChar> códigosPrefíjo(NodoArbol raíz, Dictionary <char, CantidadChar> dic, string códigoprefíjo) { if (raíz == null) { return(dic); } else { dic = códigosPrefíjo(raíz.hijoIzquierdo, dic, códigoprefíjo + 0); if (raíz.hijoDerecho == null && raíz.hijoIzquierdo == null) { if (dic.ContainsKey(Convert.ToChar(raíz.caracter))) { CantidadChar cantidad = new CantidadChar(); cantidad.codPref = códigoprefíjo; dic.Remove(Convert.ToChar(raíz.caracter)); dic.Add(Convert.ToChar(raíz.caracter), cantidad); cantidadNodos++; generarArchivoDiccionario(raíz.caracter, códigoprefíjo, dic); } } dic = códigosPrefíjo(raíz.hijoDerecho, dic, códigoprefíjo + 1); } return(dic); }
public int CompareTo(object obj) { CantidadChar compareToObj = (CantidadChar)obj; return(this.cantidad.CompareTo(compareToObj.cantidad)); }