Utilisation - Semrom/Lempel-Ziv-Welch GitHub Wiki

1) Compilation du fichier

Avant de l'utiliser, il faut compiler le fichier.
Il faut donc ouvrir un terminal et se placer dans le dossier du projet.
Compiler ensuite le fichier avec la commande : ghci lzw.hs.

2) Composition

Le fichier " lzw.hs " est constitué de :

  • la fonction d'encodage : lzwEncode :: Table a => a -> String -> [Code]
  • la fonction de décodage : lzwDecode :: Table a => a -> [Code] -> String
  • la fonction de test : checkLzw (qui effectue 20 tests avec des chaînes de caractères générées au hasard).

3) Utilisation des tests

Pour exécuter les tests, il suffit d'appeler dans le terminal la fonction checkLzw qui affichera le succès des 20 tests :
*Main> checkLzw

4) Utilisation personnalisée

Changer le nombre de tests

Il est possible de changer le nombre de tests effectués.
Pour cela, il faut modifier, à la ligne 112, la valeur de l'identifiant maxSuccess.

Encoder et Décoder des chaînes de caractères

On peut également encoder et décoder ses propres chaines de caractères.
Cependant, il faudra modifier le code du fichier, afin de créer la table nécessaire à l'encodage et au décodage des chaînes de caractères.

Exemple :
Supposons que la chaîne de caractères soit la suivante : " ababcbababaaaaaaa ".
La table devra donc contenir les caractères a, b et c.
Voici comment créer la table correspondante dans le code :
table = ListAsso[("a",0),("b", 1),("c",2)]

Enregistrer ensuite le fichier et revenir sur le terminal. Exécuter la commande :reload afin de recompiler le fichier.

Maintenant, pour encoder la chaîne, il suffit d'appeler la fonction d'encodage comme ceci :
lzwEncode table "ababcbababaaaaaaa"

On peut aussi choisir de décoder ce qu'on a encoder :
lzwDecode table (lzwEncode table "ababcbababaaaaaaa")