This is an implementation of the Huffman-Coding for Mada assignment by Pascal Hostettler.
- Eine Textdatei (ASCII kodiert) soll eingelesen werden.
- Es soll eine Tabelle angelegt werden, in der für jedes der 128 mö̈glichen ASCII-Zeichen drinsteht, wie oft das entsprechende Zeichen in der Textdatei vorkommt.
- Aus dieser Häufigkeitstabelle soll eine Huffman-Kodierung fü̈r die Zeichen konstruiert werden, die in der Datei vorkommen.
- Die Huffman-Kodierungstabelle soll in einer externen Datei dec tab.txt in der Form: ASCII-Code von Zeichen1:Code von Zeichen1-ASCII-Code von Zeichen2:Code von Zeichen2- . . . gespeichert werden.
- Die eingelesene Textdatei soll entsprechend der Huffman-Kodierung in einen Bitstring kodiert werden.
- An diesen Bitstring soll eine 1 und anschliessend so viele Nullen dran gehä̈ngt werden, bis der Bitstring eine Lä̈nge hat, die ein Vielfaches von 8 ist.
- Aus diesem erweiterten Bitstring soll ein byte-Array erstellt werden, in dem je 8 aufein- anderfolgende Zeichen zu je einem byte zusammengefasst werden.
- Dieses byte-Array soll in einer externen Datei output.dat gespeichert werden.
- Das Programm soll zudem dekodieren kö̈nnen. Es soll also aus externen Dateien die Kodierungstabelle und das byte-Array eingelesen werden. Anschliessend soll das byte-Array in einen Bitstring umgewandelt werden, von dem dann die letzte 1 und alle folgenden Nullen abgeschnitten werden, um dann den resultierenden Bitstring zu dekodieren und in einer externen Datei decompress.txt zu speichern.
- Testen Sie Ihr Programm an ein paar Textdateien und geben Sie an, wie viel Platz gespart wird.
- Dekodieren Sie output-mada.dat mit dec tab-mada.txt.