コード例 #1
0
        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);
        }
コード例 #2
0
 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);
 }
コード例 #3
0
        public int CompareTo(object obj)
        {
            CantidadChar compareToObj = (CantidadChar)obj;

            return(this.cantidad.CompareTo(compareToObj.cantidad));
        }