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)*
|
||||
- ***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**
|
||||
|
||||
|
||||
## 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 <assert.h>
|
||||
#define BIN_MAX 8
|
||||
|
||||
void binaire(unsigned int n, char s[]);
|
||||
|
||||
int main(int argc, char **argv){
|
||||
FILE *file;
|
||||
char buffer;
|
||||
int cursor,c,i;
|
||||
file=fopen("text.txt","rb");
|
||||
char text_b[5][BIN_MAX+1];
|
||||
i=0;
|
||||
// EOF : End Of File
|
||||
while((c=fgetc(file))!=EOF){
|
||||
char sb[BIN_MAX+1];
|
||||
binaire(c,sb);
|
||||
printf("%s\n",sb);
|
||||
}
|
||||
for(i=0;i<5;i++){
|
||||
for(int j=0;j<BIN_MAX;j++){
|
||||
printf("%c",text_b[i][j]);
|
||||
}
|
||||
}
|
||||
fclose(file);
|
||||
return 0;
|
||||
}
|
||||
|
||||
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)
|
||||
*/
|
||||
assert(n>=BIN_MAX);
|
||||
s[BIN_MAX]= '\0';
|
||||
int i,r;
|
||||
i=0;
|
||||
while(n!=0){
|
||||
r = n%2;
|
||||
n = n/2;
|
||||
if(0<=(BIN_MAX-i-1) && (BIN_MAX-i-1)<=BIN_MAX){
|
||||
if(r==0) s[BIN_MAX-i-1]= '0';
|
||||
else s[BIN_MAX-i-1]= '1';
|
||||
i++;
|
||||
}
|
||||
}
|
||||
int k;
|
||||
for(k=BIN_MAX-i-1;k>=0;k--){
|
||||
s[k]= '0';
|
||||
}
|
||||
#include <stdio.h>
|
||||
#include <assert.h>
|
||||
#define BIN_MAX 8
|
||||
|
||||
void binaire(unsigned int n, char s[]);
|
||||
|
||||
int main(int argc, char **argv){
|
||||
FILE *file;
|
||||
char buffer;
|
||||
int cursor,c,i;
|
||||
file=fopen("text.txt","rb");
|
||||
char text_b[5][BIN_MAX+1];
|
||||
i=0;
|
||||
// EOF : End Of File
|
||||
while((c=fgetc(file))!=EOF){
|
||||
char sb[BIN_MAX+1];
|
||||
binaire(c,sb);
|
||||
printf("%s\n",sb);
|
||||
}
|
||||
for(i=0;i<5;i++){
|
||||
for(int j=0;j<BIN_MAX;j++){
|
||||
printf("%c",text_b[i][j]);
|
||||
}
|
||||
}
|
||||
fclose(file);
|
||||
return 0;
|
||||
}
|
||||
|
||||
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)
|
||||
*/
|
||||
assert(n>=BIN_MAX);
|
||||
s[BIN_MAX]= '\0';
|
||||
int i,r;
|
||||
i=0;
|
||||
while(n!=0){
|
||||
r = n%2;
|
||||
n = n/2;
|
||||
if(0<=(BIN_MAX-i-1) && (BIN_MAX-i-1)<=BIN_MAX){
|
||||
if(r==0) s[BIN_MAX-i-1]= '0';
|
||||
else s[BIN_MAX-i-1]= '1';
|
||||
i++;
|
||||
}
|
||||
}
|
||||
int k;
|
||||
for(k=BIN_MAX-i-1;k>=0;k--){
|
||||
s[k]= '0';
|
||||
}
|
||||
}
|
||||
|
|
@ -1,15 +1,18 @@
|
|||
#include <stdio.h>
|
||||
#include "arbre_binaire.h"
|
||||
#include "arbre_binaire.c"
|
||||
#include "liste.c"
|
||||
|
||||
|
||||
int main ()
|
||||
{
|
||||
freq Test[5]={{7,'a'},{1,'c'},{3,'g'},{1,'t'},{1,'END'}};
|
||||
Freq Test;
|
||||
|
||||
|
||||
}
|
||||
/*
|
||||
L est considéré comme ordonné
|
||||
*/
|
||||
arbre huffman(arbre H, freq L[])
|
||||
arbre huffman(arbre H, Freq L[])
|
||||
{
|
||||
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