Compression de fichier

Signaler
Messages postés
67
Date d'inscription
vendredi 28 décembre 2001
Statut
Membre
Dernière intervention
23 juin 2015
-
Messages postés
149
Date d'inscription
lundi 17 décembre 2001
Statut
Membre
Dernière intervention
5 février 2006
-
Salut,
Comment peut-on compresser et décompresser un fichier en étant sous Windows 98 ?

Merci d'avance,
J.M.G.R

19 réponses

Messages postés
95
Date d'inscription
mercredi 5 décembre 2001
Statut
Membre
Dernière intervention
27 juin 2006

tu veux compressé/decompressé avec quel algo ?
huffman, RLE, LZW ?
Messages postés
67
Date d'inscription
vendredi 28 décembre 2001
Statut
Membre
Dernière intervention
23 juin 2015

Heu... C koi un algo (Je suis en seconde...) ???
Je voulais faire un fichier .cab en zip
Messages postés
129
Date d'inscription
dimanche 9 décembre 2001
Statut
Membre
Dernière intervention
12 janvier 2009

Ben tu prend Winzip, et y'a pas de soucis !

si tu ve te le coder, fo déjà avoir un but précis ! sinon, t pas rendu !

A+
NICO !
Messages postés
95
Date d'inscription
mercredi 5 décembre 2001
Statut
Membre
Dernière intervention
27 juin 2006

ici c'est pour apprendre à programmer, pas pour apprendre a s'utiliser de windows ...

et un algo c'est une suite d'instruction
Messages postés
67
Date d'inscription
vendredi 28 décembre 2001
Statut
Membre
Dernière intervention
23 juin 2015

Oui je me suis mal exprimé :)
En fait je vous dit tout comme ça vous comprendrez.

Donc je veut faire un programme d'installation un peut comme InstallShield ou PaquetBuilder en plus simple.

Et ces programmes compressent et rassembles dans un fichier plein d'autres qu'ils décompressent lors de l'installation.

Donc il faut que le programme mette dans un fichier les autres en les compressant, un peut comme WinAce avec ses fichiers 001, 002...

Au fait : Merci d'avoir répondu à mes nombreuses question :)
Messages postés
95
Date d'inscription
mercredi 5 décembre 2001
Statut
Membre
Dernière intervention
27 juin 2006

ça depend quel est ta façon de programmer, tu veux utilisé les mfc ou les facilité du meme type ?
ou tu veux programmer un compacteur/decompacteur ?
Messages postés
67
Date d'inscription
vendredi 28 décembre 2001
Statut
Membre
Dernière intervention
23 juin 2015

Avec les MFC.
Messages postés
95
Date d'inscription
mercredi 5 décembre 2001
Statut
Membre
Dernière intervention
27 juin 2006

désolé, je ne programme pas avec les mfc, je n'aime pas cet façon de programmer ! :sad)
Messages postés
67
Date d'inscription
vendredi 28 décembre 2001
Statut
Membre
Dernière intervention
23 juin 2015

Et avec le système de compactage/décompactage ?
:)
Messages postés
129
Date d'inscription
dimanche 9 décembre 2001
Statut
Membre
Dernière intervention
12 janvier 2009

Si tu ve utiliser les MFC, c pas bien compliqué !
Le PB, c qu'a la sortie, ton EXE aura besoin de 3 DLL qui sont relativemetn gros ! et que tu ne pe pas integrer dans l'EXE ! donc avec cette méthode, tu ne pourra pas faire une install ne comprenant qu'1 seul fichier !

Par contre, pour le reste, y'a plusieurs solutions ! pour ce qui est de rassembler des fichiers en 1 seul, c pas bien compliqué ! tu ouvre tous tes fichiers, et tu les recopie, bout a bout dans le fichier unique !
Pour ce qui est de la compression, c bcp plus compliqué !
A mon avis, il te fo utiliser un algo existant (ex GZIP, ou autre), et repiquer le code, avec toutes les fonctions de compression et décompression !

Si tu réussi a compresser éfficacement, préviens moi ! j'ai pas encore eu le temps de m'y agacer, mais j'ai rien réussi a faire de concluant !

A+
NICO !
Messages postés
95
Date d'inscription
mercredi 5 décembre 2001
Statut
Membre
Dernière intervention
27 juin 2006

moi je prefere recreer les algo (j'aime bien reinventer la roue :) )
donc je te conseillerai de faire des fonctions qui te permettent de compacter et de decompacter des ficher, pour debuter, je te conseil un compactage RLE, bien que peut performant, il a l'avantage d'etre trés simple
sinon tu peut tenter le compactage huffman (j'ai fait une source si tu veux (rubrique cryptage))
ou si tu aime les defis (ce que j'espere pour toi) tente le compactage LZW qui est celon moi le plus passionnant à realiser !
si tu arrive a realiser de telles fonction il te sera facile de tout mettre en un seul fichier et tu aura donc un systeme d'installation que tu aura fait de A à Z !

si tu opte pour cet solution, je pourrai t'aider mais, ça ne va pas etre facile !
Messages postés
67
Date d'inscription
vendredi 28 décembre 2001
Statut
Membre
Dernière intervention
23 juin 2015

Heu, ok pour le RLE :)
Messages postés
95
Date d'inscription
mercredi 5 décembre 2001
Statut
Membre
Dernière intervention
27 juin 2006

il y'as souvent dans les fichier des données qui se repete, donc en fait le principe du compactage RLE (Run-Lenght Encoding), c'est de profiter de ces repetition pour reduire la taille

d'abord j'espere que tu connais un peu comment lire et ecrire dans des fichier en mode binaire

on va prendre par exemple le bout de fichier suivant : (en hexadecimal)
... 51 F4 AC 8B 8B 8B 8B A5 A2 ...
on peut economiser de la place en fesant :
... 51 F4 AC 4*8B A5 A2 ...
mais le probleme c'est comment lui indiquer ce 4*
et bien en fait on va utiliser par exemple les byte superieur à B0 ainsi quand on aura
B1 on mettra 1* le caractere qui suit dans le fichier destination
B2 on mettra 2* (B0-B2= 2)
B3 on mettra 3* (B0-B3=3)
etc ...
ainsi notre bout de fichier deviendra :
... 51 F4 AC B4 8B A5 A2 ...
mais que ce passera t'il pour F4 qui est supperieur à B0 ? et bien en fait si on le laisse comme ça le decompacteur pensera que l'on veut
mettra (B0-F4) fois AC dans le fichier de destination !!!! donc en fait il faut mettre devant F4, B1 ainsi il mettra (B0-B1)* F4 c'est a dire 1*F4 !
donc notre bout de fichier devient :
... 51 B1 F4 AC B4 8B A5 A2 ...
ainsi lorsque l'on va decompacter le fichier va lire :
51 => il va mettre 51 dans le fichier Destination => // etat du fichier dest ... 51
B1 => il va lire le byte suivant =>
F4 => il va mettre (B1-B0) fois F4 dans le fichier de Dest // ... 51 F4
AC => il va mettre AC dans le fichier Dest // ... 51 F4 AC
B4 => il va lire le byte suivant =>
8B => il va mettre (B4-B0) fois 8B dans le fichier de Dest // ... 51 F4 AC 8B 8B 8B 8B
A5 => il va mettre AC dans le fichier Dest // ... 51 F4 AC 8B 8B 8B 8B A5
A2 => il va mettre AC dans le fichier Dest // ... 51 F4 AC 8B 8B 8B 8B A5 A2
on se retrouve donc avec notre bout de fichier du debut :
... 51 F4 AC 8B 8B 8B 8B A5 A2 ...

voila pour la theorie
en ce qui concerne la pratique, tu peut essayer de trouver une source de decompactage des fichier PCX, vu qu'il utilise le meme algo, tu pourra avoir un exemple concret
sinon j'essayerai de me connecter ce soir pour mettre une source avec ce type de compactage !

je pense que je vais recevoir une rafale de question pasque j'ai pas l'impression d'avoir trés bien expliquer :)
Messages postés
149
Date d'inscription
lundi 17 décembre 2001
Statut
Membre
Dernière intervention
5 février 2006

ben moi je dis que c parfaitement expliqué ! par contre g l'impression que c n'est pas très rentable comme methode (faible taux de compression)
helas je ne connait pas de meilleur algo !
si quelqu'un peu nous aider...
merci !
Messages postés
149
Date d'inscription
lundi 17 décembre 2001
Statut
Membre
Dernière intervention
5 février 2006

ben moi je dis que c parfaitement expliqué ! par contre g l'impression que c n'est pas très rentable comme methode (faible taux de compression)
helas je ne connait pas de meilleur algo !
si quelqu'un peu nous aider...
merci !
Messages postés
95
Date d'inscription
mercredi 5 décembre 2001
Statut
Membre
Dernière intervention
27 juin 2006

faudrait creer un projet dans le labo
un multicompacteur, on aurai le choix dans le mode de compression et tout, je viens de finir, un compacteur RLE que je vais mettre en ligne
mais je suis deja en train d'essayer de faire un compacteur LZW, et j'ai deja realiser un compacteur Huffman (voir dans la section cryptage)
le probleme c'est que j'ai pas envi d'etre chef de projet, car j'aime pas organiser.
donc si qq1 veut bien se devoué :)
comme ça on pourra faire ce que veux faire JMGR et ça pourra servir a tout le monde !
PS : je veux bien faire les algos mais j'ai pas envi de faire l'interface !

sinon si qq1 veut que j'explique les compactages huffman et LZW, y fait signe
Messages postés
149
Date d'inscription
lundi 17 décembre 2001
Statut
Membre
Dernière intervention
5 février 2006

c bon je m'occupe de créer le projet ! allez tous voir dans la rubrique LABO du site le projet s'appellera...hmm... VBFrance eKrBouILLaToR !!!
:big)
mon dieu c quand même très gogol comme nom.
Messages postés
95
Date d'inscription
mercredi 5 décembre 2001
Statut
Membre
Dernière intervention
27 juin 2006

un projet c++ ! pas un projet vb ! je ne fait plu de visual basic depuis des années !
Messages postés
149
Date d'inscription
lundi 17 décembre 2001
Statut
Membre
Dernière intervention
5 février 2006

ho oui pardon ! bête erreur d'habitude ;-)))
(je fais du c++ depuis... 3 semaines !)
je change tout ça d'ici demain.
@+