Add FILE ORGANIZATION FROM THE START
This commit is contained in:
parent
1795f0287b
commit
43b0081d65
16 changed files with 95 additions and 67 deletions
37
README.md
37
README.md
|
|
@ -31,3 +31,40 @@
|
||||||
- Publier enfin vos changements en appuyant sur le bouton en bas à droite  *(Il faudra vous connecter à votre compte GitHub)*
|
- Publier enfin vos changements en appuyant sur le bouton en bas à droite  *(Il faudra vous connecter à votre compte GitHub)*
|
||||||
- ***Félicitations vous avez enfin fait votre premier commit !***
|
- ***Félicitations vous avez enfin fait votre premier commit !***
|
||||||
10. Vous pouvez maintenant voir les changements entre les différents fichiers, voir l'avancement des autres collaborateurs et vous pouvez aussi commit vos changements en répétant les **étapes 7 et 8**
|
10. Vous pouvez maintenant voir les changements entre les différents fichiers, voir l'avancement des autres collaborateurs et vous pouvez aussi commit vos changements en répétant les **étapes 7 et 8**
|
||||||
|
|
||||||
|
|
||||||
|
## TRAVAIL A FAIRE ET ORGANISATION DES FICHIERS
|
||||||
|
|
||||||
|
### TRAVAIL A FAIRE
|
||||||
|
1. **GESTION DES FICHIERS**
|
||||||
|
- Structure Gérer les échanges avec le disque, mémorisant notamment l’état des échanges en cours
|
||||||
|
- Fonction Ouvrir un fichier binaire en lecture ou écriture
|
||||||
|
- Fonction Ecrire un bit dans un fichier binaire
|
||||||
|
- Fonction Lire un fichier binaire
|
||||||
|
- Fonction Fermer un fichier
|
||||||
|
2. **ARBRE DE CODAGE**
|
||||||
|
- Fonction Fréquence d'apparition des caractères dans un fichier
|
||||||
|
- *Tri à faire pour les occurences des caractères(Quicksort)*
|
||||||
|
- Implémentation de l'algorithme de construction de l'arbre de codage (Module Arbres_Binaires)
|
||||||
|
- *Tri à faire (Bulle)*
|
||||||
|
|
||||||
|
3. **COMPRESSION**
|
||||||
|
- Fonction de compression d'un fichier texte dans un fichier binaire
|
||||||
|
4. **DECOMPRESSION (EXTRACTION)**
|
||||||
|
- Fonction d'extraction d'un fichier texte depuis un fichier compressé
|
||||||
|
|
||||||
|
### ORGANISATION DES FICHIERS
|
||||||
|
|
||||||
|
- **Racine**
|
||||||
|
- Makefile
|
||||||
|
- main_compress.c
|
||||||
|
- main_decompress.c
|
||||||
|
- **/gestion_des_fichiers**
|
||||||
|
- gestion_fichiers.h
|
||||||
|
- gestion_fichiers.c
|
||||||
|
- **/arbre_de_codage**
|
||||||
|
- arbre_binaire.h
|
||||||
|
- arbre_binaire.c
|
||||||
|
- liste.h
|
||||||
|
*(Utile pour stocker le nombre d'occurence d'un caractère)*
|
||||||
|
- liste.c
|
||||||
|
|
@ -1,15 +0,0 @@
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
|
|
||||||
struct zoccurence{
|
|
||||||
int nb;
|
|
||||||
char lettre;
|
|
||||||
};
|
|
||||||
typedef struct zoccurence occ;
|
|
||||||
typedef struct zoccurence * freq;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,50 +1,50 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#define BIN_MAX 8
|
#define BIN_MAX 8
|
||||||
|
|
||||||
void binaire(unsigned int n, char s[]);
|
void binaire(unsigned int n, char s[]);
|
||||||
|
|
||||||
int main(int argc, char **argv){
|
int main(int argc, char **argv){
|
||||||
FILE *file;
|
FILE *file;
|
||||||
char buffer;
|
char buffer;
|
||||||
int cursor,c,i;
|
int cursor,c,i;
|
||||||
file=fopen("text.txt","rb");
|
file=fopen("text.txt","rb");
|
||||||
char text_b[5][BIN_MAX+1];
|
char text_b[5][BIN_MAX+1];
|
||||||
i=0;
|
i=0;
|
||||||
// EOF : End Of File
|
// EOF : End Of File
|
||||||
while((c=fgetc(file))!=EOF){
|
while((c=fgetc(file))!=EOF){
|
||||||
char sb[BIN_MAX+1];
|
char sb[BIN_MAX+1];
|
||||||
binaire(c,sb);
|
binaire(c,sb);
|
||||||
printf("%s\n",sb);
|
printf("%s\n",sb);
|
||||||
}
|
}
|
||||||
for(i=0;i<5;i++){
|
for(i=0;i<5;i++){
|
||||||
for(int j=0;j<BIN_MAX;j++){
|
for(int j=0;j<BIN_MAX;j++){
|
||||||
printf("%c",text_b[i][j]);
|
printf("%c",text_b[i][j]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
fclose(file);
|
fclose(file);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void binaire(unsigned int n, char s[]){
|
void binaire(unsigned int n, char s[]){
|
||||||
/*
|
/*
|
||||||
Décomposition binaire d'un entier (<BIN_MAX) et place celle-ci dans une chaîne de caractères passée en argument (s)
|
Décomposition binaire d'un entier (<BIN_MAX) et place celle-ci dans une chaîne de caractères passée en argument (s)
|
||||||
*/
|
*/
|
||||||
assert(n>=BIN_MAX);
|
assert(n>=BIN_MAX);
|
||||||
s[BIN_MAX]= '\0';
|
s[BIN_MAX]= '\0';
|
||||||
int i,r;
|
int i,r;
|
||||||
i=0;
|
i=0;
|
||||||
while(n!=0){
|
while(n!=0){
|
||||||
r = n%2;
|
r = n%2;
|
||||||
n = n/2;
|
n = n/2;
|
||||||
if(0<=(BIN_MAX-i-1) && (BIN_MAX-i-1)<=BIN_MAX){
|
if(0<=(BIN_MAX-i-1) && (BIN_MAX-i-1)<=BIN_MAX){
|
||||||
if(r==0) s[BIN_MAX-i-1]= '0';
|
if(r==0) s[BIN_MAX-i-1]= '0';
|
||||||
else s[BIN_MAX-i-1]= '1';
|
else s[BIN_MAX-i-1]= '1';
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
int k;
|
int k;
|
||||||
for(k=BIN_MAX-i-1;k>=0;k--){
|
for(k=BIN_MAX-i-1;k>=0;k--){
|
||||||
s[k]= '0';
|
s[k]= '0';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1,15 +1,18 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include "arbre_binaire.h"
|
#include "arbre_binaire.c"
|
||||||
|
#include "liste.c"
|
||||||
|
|
||||||
|
|
||||||
int main ()
|
int main ()
|
||||||
{
|
{
|
||||||
freq Test[5]={{7,'a'},{1,'c'},{3,'g'},{1,'t'},{1,'END'}};
|
Freq Test;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
L est considéré comme ordonné
|
L est considéré comme ordonné
|
||||||
*/
|
*/
|
||||||
arbre huffman(arbre H, freq L[])
|
arbre huffman(arbre H, Freq L[])
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
3
main_decompress.c
Normal file
3
main_decompress.c
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
/*
|
||||||
|
MAIN POUR DECOMPRESSER
|
||||||
|
*/
|
||||||
Reference in a new issue