#include "main.h"
Functions | |
int | main (int argc, char *argv[]) |
string | read_string () |
string | read_filename (bool exist) |
vector< bool > | compress_single (Huffman *huffman_compr) |
void | decompress_single (Huffman *huffman_compr, vector< bool > compr_bits) |
bool * | compress_file (Huffman *huffman_compr, bool *compr_bits, int *count, int algo_id) |
void | save_compression (bool *compr_bits, int length) |
void | save_decompression (Huffman *huffman_compr) |
void | build_tree (Huffman *huffman_compr, string filename) |
Datei zum Starten eines Menues und Ausfuehren des Huffman-Algorithmus
void build_tree | ( | Huffman * | huffman_compr, |
string | filename | ||
) |
Erzeugt einen Huffman-Binaer-Baum anhand einer Datei.
huffman_compr | Zeiger auf ein Huffman-Objekt, das zum Ausfuehren des Algorithmus verwendet wird |
filename | Dateiname der Datei, die als Wortvorlage verwendet wird |
bool* compress_file | ( | Huffman * | huffman_compr, |
bool * | compr_bits, | ||
int * | count, | ||
int | algo_id | ||
) |
Komprimiert eine komplette Datei auf 3 verschiedene Arten und gibt deren Dauer aus.
huffman_compr | Zeiger auf ein Huffman-Objekt, das zum Ausfuehren des Algorithmus verwendet wird |
algo_id | Algorithmus-ID, 0 fuer intuitiven, 1 fuer tabellearischen, sonst Loookup Algorithmus |
vector<bool> compress_single | ( | Huffman * | huffman_compr | ) |
Komprimiert einen einzelnen einzulesenden Text und gibt deren Kompressionsbits aus.
huffman_compr | Zeiger auf ein Huffman-Objekt, das zum Ausfuehren des Algorithmus verwendet wird |
void decompress_single | ( | Huffman * | huffman_compr, |
vector< bool > | compr_bits | ||
) |
Dekomprimiert uebergebene Bits mit dem Huffman-Algorithmus und gibt den dekomprimierten Text aus.
huffman_compr | Zeiger auf ein Huffman-Objekt, das zum Ausfuehren des Algorithmus verwendet wird |
compr_bits | text |
int main | ( | int | argc, |
char * | argv[] | ||
) |
Start-Funktion, die ein Objekt der Huffman-Klasse auf dem Heap erzeugt und auf dieses bei verschiedenen Menüauswahlen die jeweilige Methode des Huffman-Objekts aufruft. Abschliessend wird das Objekt ordnungsgemaess vom Speicher entfernt.
argc | Anzahl uebergebener Parameter |
argv | Parameter-Feld, das beim Start des Programms uebergeben wird |
string read_filename | ( | bool | exist | ) |
Fragt nach einem Dateinamen, liest ihn ein und prueft, ob die Datei existiert. Je nach Parameteruebergabe wird dies so lange wiederholt, wie erforderlich.
exist | 0, wenn die Datei nicht existieren muss, sonst muss sie existieren |
string read_string | ( | ) |
Liest einen Text (mit Leerzeichen) ein und leert vor- und nachher den Puffer.
void save_compression | ( | bool * | compr_bits, |
int | length | ||
) |
Speichert die uebergebenen Bits in einer Datei.
compr_bits | zu speichernde Bits |
void save_decompression | ( | Huffman * | huffman_compr | ) |
Liest eine komprimierte Datei ein, dekomprimiert sie und speichert sie in einer anderen Datei. Die Dateinamen werden jeweils eingelesen.
huffman_compr | Zeiger auf ein Huffman-Objekt, das zum Ausfuehren des Algorithmus verwendet wird |