Quiero comprimir cadenas muy pequeñas (aproximadamente 75-100 longitud C# cadena). En el momento en que se crea el diccionario, ya conozco todas las cadenas cortas (casi un billón). No habrá cadenas cortas adicionales en el futuro. Necesito extra exactamente una cadena sin descomprimir otras cadenas.Comprimir cadenas pequeñas, ¿con qué crear diccionario externo?
Ahora estoy buscando para una biblioteca o la mejor manera de hacer lo siguiente:
- crear un diccionario utilizando todas las cadenas que tengo
- usar el diccionario para comprimir cada cadena
- una manera de comprimir una cadena usando el diccionario de 1.
Encontré un good related question, pero esto no es específico de C#. Tal vez hay algo para C# No lo sé, o una biblioteca de lujo o alguien ya lo ha hecho. Esa es la razón por la que hago esta pregunta.
EDIT:
con el diccionario Estoy hablando de cosas como esta: http://en.wikipedia.org/wiki/Dictionary_coder Pero todo ayuda a conseguir las cadenas más cortas. Las cadenas son mensajes de texto cortos en varios idiomas y URL (30%/70%). No es necesario que las cadenas comprimidas sean legibles por humanos. Se almacenará en archivos binarios.
¿Qué tipo de datos hay en las cadenas? (¿en su mayoría ASCII? ¿Cartas aleatorias? ¿GUID?) – Cameron
Por diccionario, ¿te refieres a la clase .NET 'Dictionary' que almacena pares clave-valor? ¿Las cadenas se usarán como claves o valores en su diccionario? Si las cadenas son solo valores, ¿cuáles serán las claves? –
principalmente ascii, no al azar. Como mensajes cortos de texto, oraciones y urls. – Chris