begin process at 2012 05 28 19:19:43
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Algorithme

 > 

Compression, Split & Cryptage

 > 

Compression par suppression des blancs


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Compression par suppression des blancs

mardi 16 janvier 2007 à 08:59:22 | Compression par suppression des blancs

Le_duc26

voila mon sujet:

Réaliser un programme en C++ permettant la compression d'un fichier texte fourni en donnée par suppression des caractères blancs.

Rechercher des suites de blancs ou de caractères nuls. Lorsqu'une séquence de blancs est rencontrée, elle est remplacée par un couple de caractères ordonnés: le premier est un code spécial indiquant qu'il s'agit d'une répétition, le second est un compteur du nombre de blancs.

è Afficher le fichier texte compressé.

è Afficher la taille mémoire allouée aux fichiers compressé et non compressé ainsi que le Gain de Compression.

J'ai commencé à pondre du code mais ca ne marche pas des masses.

voila mon code:

//*********** BIBLIOTHEQUES  *********** **************

#include <stdio.h>
#include <io.h>
#include <conio.h>
#include <string.h>

//*********** PROTOTYPES DES FONCTIONS **************

//*********** VARIABLES GLOBALES  *********************

//*********** PROGRAMME PRINCIPAL  *******************

 


void main()
{
  char chNomFichier[10];
  char* caract;
  int i=0;
  int CS=255;
  FILE* Buf;


  //ouvrir fichier
  printf("Entrez le nom du fichier a sauvegarder\n\n");
  scanf("%s",&chNomFichier);
  Buf=fopen(chNomFichier,"w+b");

  //ecriture ds le fichier
  printf("\nEntrez votre texte\n\n");
  scanf("\n\n%s",&caract);
  fwrite(&caract,sizeof(caract),1,Buf);

  //fermeture buffer
  fclose(Buf);
}


 //compression

 while(Buf==NULL)
 {
  fread (&caract,sizeof(caract),1,Buf);

  if(caract=" ")
   {
   i=i+1;
   }
   //codage du nbr de repetition sur un octet

   if(i=255)
   {
   fwrite (&caract,sizeof(CS),1,Buf);
   i++;
   i=0;
   }
  else
   {
   if(i>2)
    {
    fwrite (&caract,sizeof(CS),1,Buf);
    i++;
    i=0;
    }
   else
    {
    if(i=2)
     {
     fwrite (&caract,sizeof("  "),1,Buf);
     }
    if(i=1)
     {
     fwrite (&caract,sizeof(" "),1,Buf);
     }
    }
    fwrite (&caract,sizeof(caract),1,Buf);
   }
 }

}

mercredi 17 janvier 2007 à 16:11:02 | Re : Compression par suppression des blancs

turnerom

Salut, peux-tu etre un peu plus explicite quand tu dis ca marche pas des masse. Et mettre un peu plus de code qui au passage n'est absolument pas du c++ mais du C !!!



TuRn3r


Cette discussion est classée dans : sizeof, blancs, fwrite, buf, caract


Répondre à ce message

Sujets en rapport avec ce message

debutant en c, probleme pour un programmme de compression [ par araborgne ] voila donc je cherchais un programme permettant de compresser et decompresser un fichier texte, et image.j'en ai trouver un, mais il est ecrit en c++, fwrite en mémoire.... [ par loicus ] Bonjour à tous...J'ai un très gros probleme.  Je travail avec des fichiers binaires en lecture et en écriture.Je n'ai aucun probleme avec l'utilisatio Problème d'effacement de tableau en C++ (sans MFC) [ par Shad0w ] Voilà, mon code copie le contenu d'un fichier dans une edit :------------- char fil[LEN]; OPENFILENAME ofn; ZeroMemory(&ofn, sizeof(OPENFI Fread(); [ par Samy926 ] Bonjour , J' essaie pour le moment d' apprendre à déplacer un fichier quelconque vers un nouveau répertoire.#include #include #include void main(){ vc++ -> vb6 retour de fonctions (c) de type tableau en vb!! [ par matever ] Bonjours à tous!je dispose d'une fonction appartenant à une dll:POINT BUF_TMP[500];//globalPOINT * ENVOIS_BUF_TMP(){ MessageBox( NULL, "Envoi du tabl prob avec un istream [ par Bybydjou ] bjour, j'ai un probleme avec la lecture d'un fichierg fait un :ifstream fichier;fichier.open("blabla.bla");mais apres, je le lis caracteres par caract help pliz pour un labo sur les liste chaine et les fichiers [ par Infern0 ] void ajoutrdv(void){ FILE *FichMED; FILE *FichRDV; struct RDV rdv; struct medecin med; int nummed; int nblut = 0; int recordsuiv; int recordlibresuiv; Gros Probleme En C [ par Infern0 ] Bon, voila 3 fonction de mon programme. Avec celle d'affichage, quand j'affiche la 1ere, y a aucun probleme, si j'affiche la deuxieme, g des chiffre Problème de rafraichissement (?) [ par Slaayer ] G programmé une application Win32 en C, sous visual C++, permettant de chatter en se connectant à un serveur.Le client intercepte bien les msg envoyé PROBLEME POINTEURS [ par zeloveur ] char * saisirChaine(){ int i=0; char *chn; chn=(char *)malloc(sizeof(char)); do { chn[i]=getchar(); chn=(char *)realloc(chn,(++i+1)*sizeof(char)); }


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,668 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales