exercice de compression RLE
tout d'abord bonjour a tous :p voila je suis actuellement en bts informatique et , j'ai un petit projet a realiser : compresser un fichier avec la methode RLE
et afficher le resultat de cette compresison en hexadecimale :p
bon tout d'abord j'ai reussit a lire le fichier et , a l'afficher en base hexadecimale
ensuite je compte le nombre de repetition du meme octet pour le RLE jusque la c'est asser facile c'est apres que sa se gate , comment faire pour que , dés que l'octet precedent et different de l'octet lu , lui dir qu'il affich celui ci une seule fois avec devant le nombre de fois qui apparait a la suite : je suis bloquer ici de plus je doit effectuer cette exercisse sans tablo ><
je vous fait par de mon code (fait avec dev c++)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
#include <iostream>
#include <fstream>
using namespace std;
int main(int argc, char *argv[])
{
int i;
char octet;
char precedent;
ifstream source;
source.open("source.txt",ios::binary);
precedent=0;
i=1;
while(source.read((char*)&octet,1))
{
if (precedent==octet)
{
i++;
}
else
{
i=1;
}
cout<<hex<<i<<hex<<(int)octet<<" ";
precedent=octet;
}
system("PAUSE");
return EXIT_SUCCESS;
} |
je vous remerci d'avance pour votre aide cordialement