begin process at 2010 02 10 05:43:33
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > ENCODER/DÉCODER UN FICHIER

ENCODER/DÉCODER UN FICHIER


 Information sur la source

Note :
3 / 10 - par 4 personnes
3,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Divers Niveau :Expert Date de création :27/05/2001 Vu :11 348

Auteur : Arnotic

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note


 Description

Voici un petit programme qui permet de voir comment faire pour encoder et/ou décoder un fichier.

Intéressant à voir ! :-)

Source

  • #include <stdio.h>
  • #include <stdlib.h>
  • #include <string.h>
  • int encode_character(int ch, int val);
  • int decode_character(int ch, int);
  • int main (int argc, char *argv[])
  • {
  • FILE *fh;
  • int rv = 1;
  • int ch =0;
  • unsigned int ctr = 0;
  • int val = 5;
  • char buffer[257];
  • char filename[80];
  • char action[10];
  • char compa[] = "Decoder";
  • int x;
  • printf("Veuillez tapez le nom du fichier : ");
  • gets(filename);
  • printf("Veuillez tapez \"Decoder\" pour le decoder ou \"Coder\" pour le coder : ");
  • gets(action);
  • x = strcmp(action, compa);
  • if(x == 0)
  • {
  • fh = fopen(filename, "r");
  • if(fh <= 0)
  • {
  • printf("\nErreur d'ouverture du fichier en mode r.\n\n");
  • rv=-2;
  • }
  • else
  • {
  • printf("\n\nLe fichier :\n\n");
  • ch = getc(fh);
  • while(!feof(fh))
  • {
  • ch = decode_character(ch, val);
  • putchar(ch);
  • ch = getc(fh);
  • }
  • fclose(fh);
  • printf("\n\n\nFichier decode et affiche.\n");
  • }
  • }
  • else
  • {
  • fh = fopen(filename, "w");
  • if(fh <= 0)
  • {
  • printf("\n\nErreur pendant le création du fichier...");
  • rv = -3;
  • }
  • else
  • {
  • printf("\n\nEntrez le texte a coder. ");
  • printf("Entrez une ligne vide pour terminer.\n\n");
  • while(gets(buffer) != NULL)
  • {
  • if(buffer[0] == 0)
  • break;
  • for(ctr=0; ctr < strlen(buffer); ctr++)
  • {
  • ch = encode_character(buffer[ctr], val);
  • ch = fputc(ch, fh);
  • }
  • }
  • printf("\n\n\nMessage code et enregistre.\n\n");
  • fclose(fh);
  • }
  • }
  • return(rv);
  • }
  • int encode_character(int ch, int val)
  • {
  • ch = ch+val;
  • return (ch);
  • }
  • int decode_character(int ch, int val)
  • {
  • ch = ch-val;
  • return(ch);
  • }
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int encode_character(int ch, int val);
int decode_character(int ch, int);

int main (int argc, char *argv[])
{
	FILE *fh;
	int rv = 1;
	int ch =0;
	unsigned int ctr = 0;
	int val = 5;
	char buffer[257];
	char filename[80];
	char action[10];
	char compa[] = "Decoder";
	int x;

	printf("Veuillez tapez le nom du fichier : ");
		gets(filename);

	printf("Veuillez tapez \"Decoder\" pour le decoder ou \"Coder\" pour le coder : ");
		gets(action);

	x = strcmp(action, compa);

	if(x == 0)
	{
		fh = fopen(filename, "r");
		if(fh <= 0)
		{
			printf("\nErreur d'ouverture du fichier en mode r.\n\n");
			rv=-2;
		}
		else
		{
			printf("\n\nLe fichier :\n\n");
			ch = getc(fh);
			while(!feof(fh))
			{
				ch = decode_character(ch, val);
				putchar(ch);
				ch = getc(fh);
			}

			fclose(fh);
			printf("\n\n\nFichier decode et affiche.\n");
		}
	}
	else
	{
		fh = fopen(filename, "w");
		if(fh <= 0)
		{
			printf("\n\nErreur pendant le création du fichier...");
			rv = -3;
		}
		else
		{
			printf("\n\nEntrez le texte a coder. ");
			printf("Entrez une ligne vide pour terminer.\n\n");

			while(gets(buffer) != NULL)
			{
				if(buffer[0] == 0)
					break;

				for(ctr=0; ctr < strlen(buffer); ctr++)
				{
						ch = encode_character(buffer[ctr], val);
						ch = fputc(ch, fh);
				}
			}
			printf("\n\n\nMessage code et enregistre.\n\n");

			fclose(fh);
		}
	}
	return(rv);
}

int encode_character(int ch, int val)
{
		ch = ch+val;
		return (ch);
}

int decode_character(int ch, int val)
{
	ch = ch-val;
	return(ch);
} 

 Conclusion

Amusez-vous bien ! :))


 Sources du même auteur

Source avec Zip Source avec une capture ARCOLOR (WIN64)
Source avec Zip REMPLACE CRT (WIN64)
Source avec Zip Source avec une capture CREATION DE FICHIER PDF
Source avec Zip SURVEILLER LA MÉMOIRE D'UN PROCESSUS
Source avec Zip TOOL - MOVE CHAINE

 Sources de la même categorie

Source avec Zip CALLOCATOR par troctsch
Source avec Zip HEAPCOLLECTOR par troctsch
Source avec Zip GÉNÉRE UN TABLEAU DE CARACTÉRE AU FORMAT C CONTENANT LE BYTE... par kertimanoff
FRACTIONS EGYPTIENNES par lptm974
BITOPERATOR par FrancoisGauthier

Commentaires et avis

Commentaire de DolfinCry le 27/04/2002 03:41:38

Des quoi, des commentaires?  C'est quoi ca?
Au moins, le code est bien aligné, faut commencer en quelque part mais encore la, on est pas au niveau3 la hein?

Commentaire de HotSpot le 19/02/2003 22:28:26

si mé bon les commentaires ca rend la lecture de la source plus agréable !!
:) bon courage

Commentaire de nonoboss le 12/08/2003 18:01:48

le code ne marche que dans un sens : il encode mais ne decode pas
Qui a eu le meme probleme que moi?

Commentaire de nikko le 10/09/2003 09:21:08

ça ne me plaît pas trop cette addition sans contrôles :( Imagine devoit encoder un fichier qque et qur tu y prenne la valeur maxi d'un int: ton addition fait un overflow et comme ta soustraction est aussi sans contrôles, ....

Commentaire de firemax le 06/06/2005 14:08:19

Ici :
gets(filename);
Et ici :
gets(action);

Tu ne controle pas la taille de ce que tu rentre il y a risque de buffer overlow non ? (je suis pas sur je debute)

C'est pas mechant et je critique pas mais je vois toujours pas ce que fais cette source au niveau 3 :s

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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 : 0,671 sec (4)

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