Add file organization

This commit is contained in:
NyxiumYuuki 2019-12-07 20:24:56 +01:00
parent ccddc6a1af
commit 1795f0287b
No known key found for this signature in database
GPG key ID: 03E8F3CF3183323A
9 changed files with 140 additions and 26 deletions

View file

@ -0,0 +1,56 @@
#include <assert.h>
#include <stdlib.h>
#include "liste.h"
Freq creer_liste_vide(){
return NULL;
}
int est_liste_vide(Freq l){
return(l==NULL);
}
Freq ajouter(int nb, char lettre, Freq l){
Occ * tmp;
tmp=malloc(sizeof(Occ));
tmp->nb=nb;
tmp->lettre=lettre;
tmp->suiv=l;
return tmp;
}
char tete(Freq l){
assert(!est_liste_vide(l));
return(l->lettre);
}
Freq queue(Freq l){
assert(!est_liste_vide(l));
return(l->suiv);
}
void liberer_liste(Freq l){
if(!est_liste_vide(l)){
liberer_liste(queue(l));
free(l);
}
}
Freq liberer_maillon(Freq l){
assert(!est_liste_vide(l));
Occ * tmp = l->suiv;
free(l);
return tmp;
}
int rechercher(char lettre,Freq l){
if(est_liste_vide(l)){
return 0;
}
else if(lettre==tete(l)){
return 1;
}
else{
return rechercher(lettre,queue(l));
}
}

View file

@ -0,0 +1,20 @@
#ifndef __LISTE_OCCURENCE__
#define __LISTE_OCCURENCE__
struct zoccurence{
int nb;
char lettre;
struct zoccurence *suiv;
};
typedef struct zoccurence Occ;
typedef struct zoccurence * Freq;
Freq creer_liste_vide();
int est_liste_vide(Freq l);
Freq ajouter(int nb, char lettre, Freq l);
int tete(Freq l);
Freq queue(Freq l);
void liberer_liste(Freq l);
Freq liberer_maillon(Freq l);
int rechercher(char lettre, Freq l);
#endif

View file

@ -1,15 +1,9 @@
#include <stdio.h>
#include "arbre_binaire.h"
struct zoccurence{
int nb;
char lettre;
};
typedef struct zoccurence occ;
typedef struct zoccurence * freq;
int main ()
{
freq Test[5]={{7,'a'},{1,'c'},{3,'g'},{1,'t'},{1,'END'}};
}
/*

View file

@ -7,14 +7,21 @@ void binaire(unsigned int n, char s[]);
int main(int argc, char **argv){
FILE *file;
char buffer;
int cursor,c;
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(32,sb);
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;
}
@ -22,7 +29,6 @@ int main(int argc, char **argv){
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';
@ -37,4 +43,8 @@ void binaire(unsigned int n, char s[]){
i++;
}
}
}
int k;
for(k=BIN_MAX-i-1;k>=0;k--){
s[k]= '0';
}
}

View file

@ -0,0 +1,4 @@
/*
Fonctions liés à la gestion de fichiers
*/

View file

@ -0,0 +1,3 @@
/*
Prototypes de gestion_fichiers.c + variables define + structure(s)
*/

View file

@ -1,18 +1,45 @@
GESTION DE 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
TRAVAUX :
GESTION DE 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
ARBRE DE CODAGE :
- Fonction Fréquence d'apparition des caractères dans un fichier
- tri quicksort
- Implémentation de l'algorithme de construction de l'arbre de codage (Module Arbres_Binaires)
- tri à bulle
ARBRE DE CODAGE :
- Fonction Fréquence d'apparition des caractères dans un fichier
- tri quicksort
- Implémentation de l'algorithme de construction de l'arbre de codage (Module Arbres_Binaires)
- tri à bulle
COMPRESSION :
- Fonction de compression d'un fichier texte dans un fichier binaire
COMPRESSION :
- Fonction de compression d'un fichier texte dans un fichier binaire
EXTRACTION (DECOMPRESSION) :
- Fonction d'extraction d'un fichier texte depuis un fichier compressé
FICHIERS A PREVOIR :
Makefile
main_compress.c
main_decompress.c
GESTION DES FICHIERS :
- gestion_fichiers.h
- gestion_fichier.c
ARBRE DE CODAGE :
- arbre_binaire.h
- arbre_binaire.c
(Utile pour stocker le nombre d'occurence d'un caractère)
- liste.h
- liste.c
INSTRUCTION A FAIRE PENDANT LE CODAGE :
- Commenter chaque fonction (ce qu'elle fait avec entrée et sortie)
- Commenter des parties non trivial (évident)
EXTRACTION (DECOMPRESSION) :
- Fonction d'extraction d'un fichier texte depuis un fichier compressé