juli1m
Messages postés14Date d'inscriptionvendredi 6 février 2004StatutMembreDernière intervention14 février 2005
-
13 mai 2004 à 11:45
juli1m
Messages postés14Date d'inscriptionvendredi 6 février 2004StatutMembreDernière intervention14 février 2005
-
14 mai 2004 à 09:21
bonjour,
j'aimerais pouvoir compresser une chaine de 9 caractères (constituée uniquement de chiffres : 130405301), et j'aimerais que, une fois compressée, je puisse decompresser pour pouvoir relire la chaine initiale.
j'aimerais, de plus, si c'est possible que cette compression soit parametrable (que je puisse choisir si je veux obtenir que des chiffres, que des lettres, ou les 2). Et aussi que les caractères une fois compressés rstent imprimables.
Bon, je sais, j'en demande beaucoup, mais, bon, si vous avez ne serait-ce qu'un soupçon d'idée, ça pourrait évetuellement m'aider, ça fait une semaine que je cherche et je n'i rien trouvé, j'ai esayé aussi quelques bidouilles, mais rien de très concluant.
juli1m
Messages postés14Date d'inscriptionvendredi 6 février 2004StatutMembreDernière intervention14 février 2005 13 mai 2004 à 14:11
c'est vrai, ça ressemble beaucoup à du cryptage, mais je n'ai pas trouvé d'algo de cryptage qui me compresse une chaine et surtout, avec des caractères bien imprimables (même en utlisant le base64 pour avoir des caractères bien lisibles, d'autant plus que le base64 avec 1 caractère, il en fait 2).
ce qu'il faut, en fait, c'est vraiment de compresser la chaine au max, car les infos que je veux compresser ne seront pas toutes seules au final. elles devront tenir dans une autre chaine de longueur fixe avec d'autres infos, et ces infos, je veux en garder un max.
Vb Lover
Messages postés221Date d'inscriptionvendredi 30 novembre 2001StatutMembreDernière intervention13 février 20105 13 mai 2004 à 22:29
ça ne doit pas être trop compliqué. Je ne suis pas sûr d'avoir compris si ta chaîne a une longueur de 9, ou si elle peut être plus longue mais elle est composée que de chiffres.
Bref, voici une méthode générale pour un texte composé que de chiffres :
1) il y a 10 chiffres, donc il te faut 4 bits pour coder chacun. (ici, en fait, tu pourrais gagner un peu de place, parce que 2^4=16, et donc tu "perds" 6 symboles. Tu pourrais grouper les chiffres par 3 et utiliser 5 bits).
2) Admettons que tu utilises 4 bits pour coder 1 chiffre, avec 1 caractère de 8 bits, tu gagnes donc environ la moitié de place, mais il faut t'arranger pour que tes caractères soient "lisibles"
3) Si tu as uniquement 9 caractères dans ta chaîne, alors tu utilises le fait : 2^30 = 1'073'741'824 > 999'999'999
il te faut donc 4 octets pour compresser ta chaîne. le problème est toujours de tomber sur des lettres "imprimables"