Compression de fichier

Jmgr Messages postés 67 Date d'inscription vendredi 28 décembre 2001 Statut Membre Dernière intervention 23 juin 2015 - 27 janv. 2002 à 13:25
vanpet Messages postés 149 Date d'inscription lundi 17 décembre 2001 Statut Membre Dernière intervention 5 février 2006 - 31 janv. 2002 à 16:34
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

Croqmort Messages postés 95 Date d'inscription mercredi 5 décembre 2001 Statut Membre Dernière intervention 27 juin 2006
27 janv. 2002 à 15:39
tu veux compressé/decompressé avec quel algo ?
huffman, RLE, LZW ?
0
Jmgr Messages postés 67 Date d'inscription vendredi 28 décembre 2001 Statut Membre Dernière intervention 23 juin 2015
27 janv. 2002 à 17:30
Heu... C koi un algo (Je suis en seconde...) ???
Je voulais faire un fichier .cab en zip
0
MangaII Messages postés 129 Date d'inscription dimanche 9 décembre 2001 Statut Membre Dernière intervention 12 janvier 2009
27 janv. 2002 à 20:39
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 !
0
Croqmort Messages postés 95 Date d'inscription mercredi 5 décembre 2001 Statut Membre Dernière intervention 27 juin 2006
27 janv. 2002 à 22:39
ici c'est pour apprendre à programmer, pas pour apprendre a s'utiliser de windows ...

et un algo c'est une suite d'instruction
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Jmgr Messages postés 67 Date d'inscription vendredi 28 décembre 2001 Statut Membre Dernière intervention 23 juin 2015
28 janv. 2002 à 08:19
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 :)
0
Croqmort Messages postés 95 Date d'inscription mercredi 5 décembre 2001 Statut Membre Dernière intervention 27 juin 2006
28 janv. 2002 à 08:32
ç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 ?
0
Jmgr Messages postés 67 Date d'inscription vendredi 28 décembre 2001 Statut Membre Dernière intervention 23 juin 2015
28 janv. 2002 à 09:38
Avec les MFC.
0
Croqmort Messages postés 95 Date d'inscription mercredi 5 décembre 2001 Statut Membre Dernière intervention 27 juin 2006
28 janv. 2002 à 10:43
désolé, je ne programme pas avec les mfc, je n'aime pas cet façon de programmer ! :sad)
0
Jmgr Messages postés 67 Date d'inscription vendredi 28 décembre 2001 Statut Membre Dernière intervention 23 juin 2015
28 janv. 2002 à 11:22
Et avec le système de compactage/décompactage ?
:)
0
MangaII Messages postés 129 Date d'inscription dimanche 9 décembre 2001 Statut Membre Dernière intervention 12 janvier 2009
28 janv. 2002 à 20:08
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 !
0
Croqmort Messages postés 95 Date d'inscription mercredi 5 décembre 2001 Statut Membre Dernière intervention 27 juin 2006
28 janv. 2002 à 22:06
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 !
0
Jmgr Messages postés 67 Date d'inscription vendredi 28 décembre 2001 Statut Membre Dernière intervention 23 juin 2015
29 janv. 2002 à 12:08
Heu, ok pour le RLE :)
0
Croqmort Messages postés 95 Date d'inscription mercredi 5 décembre 2001 Statut Membre Dernière intervention 27 juin 2006
29 janv. 2002 à 13:19
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 :)
0
vanpet Messages postés 149 Date d'inscription lundi 17 décembre 2001 Statut Membre Dernière intervention 5 février 2006
29 janv. 2002 à 18:17
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 !
0
vanpet Messages postés 149 Date d'inscription lundi 17 décembre 2001 Statut Membre Dernière intervention 5 février 2006
29 janv. 2002 à 18:19
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 !
0
Croqmort Messages postés 95 Date d'inscription mercredi 5 décembre 2001 Statut Membre Dernière intervention 27 juin 2006
29 janv. 2002 à 22:01
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
0
vanpet Messages postés 149 Date d'inscription lundi 17 décembre 2001 Statut Membre Dernière intervention 5 février 2006
30 janv. 2002 à 09:49
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.
0
Croqmort Messages postés 95 Date d'inscription mercredi 5 décembre 2001 Statut Membre Dernière intervention 27 juin 2006
30 janv. 2002 à 22:34
un projet c++ ! pas un projet vb ! je ne fait plu de visual basic depuis des années !
0
vanpet Messages postés 149 Date d'inscription lundi 17 décembre 2001 Statut Membre Dernière intervention 5 février 2006
31 janv. 2002 à 16:34
ho oui pardon ! bête erreur d'habitude ;-)))
(je fais du c++ depuis... 3 semaines !)
je change tout ça d'ici demain.
@+
0
Rejoignez-nous