Compression rle (part ii)

Soyez le premier à donner votre avis sur cette source.

Vue 8 264 fois - Téléchargée 180 fois

Description

Ben voilà, c'est la suite de ma dernière source, sur la compression, là ca utilise la méthode de compression RLE (run length encoding) ou compression de longueur. en concret :
compress("aaaaaaaaaaabbbbbbbbbbbbbbcccccccccca");
donnera : a(le caractère qui a pour code ascii 11) b(char 14) c a
etc..
au final ça nous donnera un truc du genre a$b%c*a* (c'est un mauvais exemple...)
pas la pene d'expliquer la décompression...

Source / Exemple :


Chaine claire.<br>
<textarea id="0" onkeyUp="document.getElementById(1).value=compress(this.value);document.getElementById(2).value=decompress(compress(this.value));document.getElementById(3).value=this.value.length-compress(this.value).length">

</textarea><br><br>
Chaine compressée.<br>
<textarea id="1">

</textarea><br><br>
Chaine décompréssée.<br>
<textarea id="2">

</textarea><br><br>
Caractères gagnés.<br>
<input type="text" id="3">
<script>
function compress(text)
{
var ranked=text.split("");
var compstr="";
var k=0;
for(i=0;i<ranked.length;i++)
{
	if(k<255){k++}else{compstr+=ranked[i]+String.fromCharCode(k);k=0;};
	if(ranked[i]!=ranked[i+1]){compstr+=ranked[i]+String.fromCharCode(k);k=0;}
}
return compstr;
}

function decompress(text)
{
var decompstr="";
	for(i=0;i<text.length;i+=2)
	{
		for(k=0;k<text.charCodeAt(i+1);k++)
		{
			decompstr+=text.charAt(i);
		}
	}
return decompstr
}

</script>

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
1
Date d'inscription
jeudi 29 novembre 2007
Statut
Membre
Dernière intervention
26 mai 2008

merci ,mais j'est besoin d'une source compression des donées en Delphi SVP
Messages postés
450
Date d'inscription
samedi 16 avril 2005
Statut
Membre
Dernière intervention
18 avril 2007
2
bof, ya pas vraiment besoin de commentaires, tout le monde comprend comment ça marche. pour les lignes de codes, c'est pas non plus compliqué a comprendre qui fait quoi.
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
14
Bonjour,
La méthode RLE pour compresser des...TEXTEs... fallait osé, mais bon...
Je cite [ mais ç'est juste pour démontere la méthode RLE.]
OU sont les commentaires de la source pour l'expliquer !

;0)
Messages postés
450
Date d'inscription
samedi 16 avril 2005
Statut
Membre
Dernière intervention
18 avril 2007
2
Voilà... j'ai oublié de préciser que ça ne marche pas a tout les coups... par exemple :
abcdefghijklmnop donnera :
a1b1c1d1e1f1g1h1i1j1k1l1m1n1o1p1
soit le double... mais ç'est juste pour démontere la méthode RLE.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.