Foros del Web » Programación para mayores de 30 ;) » .NET »

Compresion de huffman

Estas en el tema de Compresion de huffman en el foro de .NET en Foros del Web. Hola a todos... ...lo q sucede es q me pidieron un programa en c# q lea un archivo .txt y cuente cuantas letras hay, y ...
  #1 (permalink)  
Antiguo 20/11/2009, 15:21
 
Fecha de Ingreso: octubre-2009
Mensajes: 5
Antigüedad: 14 años, 7 meses
Puntos: 0
Compresion de huffman

Hola a todos...
...lo q sucede es q me pidieron un programa en c# q lea un archivo .txt y cuente cuantas letras hay, y cuantas de cadaa letra, para luego realizar una tabla de frecuencia de letras, y aplicarle la compresion de huffman....al final el debe imprimir el arbol y la tabla de equivalencia de letreas.
se q es demaciado, pero agradeceria q almenos me ayuden con el asunto de contar cuantas letras hay de cada una (realize algo similar pero con muchos if)
o me expliquen almenos un poquito como hacer el arbol ya q yo solo lo se hacer manual y el programa deberia leer cualquier txt.
agradesco sus comentarios

  #2 (permalink)  
Antiguo 20/11/2009, 15:32
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Respuesta: Compresion de huffman

Contar las letras puedes hacerlo usando de Generics un Dictionary para llevar tu conteo de repeticiones por simbolo (letra, numero o signo) y usando un filestream y streamreader hacer el readtoend y de ese string y convertirlo en un char array o hacerlo en lectura secuencial

asi haras algo como

Dictionary<char,int> diccionario=new Dictionary<char,int>();


foreach(char letraActual in textoComoCharArray)
{
if(diccionario.Keys.Contains(letraActual))
{
diccionario[letraActual]++;
}
else
{
diccionario.Add(letraActual,1);
}
}
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #3 (permalink)  
Antiguo 20/11/2009, 21:32
 
Fecha de Ingreso: octubre-2009
Mensajes: 5
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Compresion de huffman

Cita:
Iniciado por Peterpay Ver Mensaje
Contar las letras puedes hacerlo usando de Generics un Dictionary para llevar tu conteo de repeticiones por simbolo (letra, numero o signo) y usando un filestream y streamreader hacer el readtoend y de ese string y convertirlo en un char array o hacerlo en lectura secuencial

asi haras algo como

Dictionary<char,int> diccionario=new Dictionary<char,int>();


foreach(char letraActual in textoComoCharArray)
{
if(diccionario.Keys.Contains(letraActual))
{
diccionario[letraActual]++;
}
else
{
diccionario.Add(letraActual,1);
}
}
pero despues si imprimo la letraActual, saldran todas las letras y realmente lo q necesito es el numero de cuantas letras hay de cada una.
  #4 (permalink)  
Antiguo 20/11/2009, 21:42
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Respuesta: Compresion de huffman

claro que no, si no tiras codigo y lo pruebas no podras saber que hace ,y no debes imprimir letra actual debes imprimir diccionario[letraActual].ToString() o el KeyValuePair<char,int>
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5

Última edición por Peterpay; 20/11/2009 a las 21:53
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:11.