begin process at 2012 05 27 14:48:20
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Application

 > CONCATÉNATION DE DEUX FIHCIER

CONCATÉNATION DE DEUX FIHCIER


 Information sur la source

Note :
Aucune note
Catégorie :Application Niveau :Initié Date de création :02/04/2004 Date de mise à jour :12/04/2004 20:39:05 Vu / téléchargé :4 155 / 124

Auteur : Abdellah81

Ecrire un message privé
Commentaire sur cette source (2)
Ajouter un commentaire et/ou une note

 Description

Ce programme concatène deux fichiers, il est écrit en c.

Source

  • /*********************************************************************************/
  • /*Ce programme est sous license GNU */
  • /*El Antri Abdellah (Djillali Liabes university, Informatic departement, Algeria)*/
  • /*E-Mail: El_Emir_2002@yahoo.fr */
  • /*********************************************************************************/
  • /*-------------------------------------------------------------------------*/
  • /* Compiled with TC++ 3 under windows */
  • /* Use cc to compil programme under unix/linux */
  • /*-------------------------------------------------------------------------*/
  • #include<conio.h>
  • #include<stdio.h>
  • #include<stdlib.h>
  • int main(int argc,char **argv)
  • {
  • char buf[2*1024], fname_src[50], fname_dest[50];
  • FILE *src,*dest;
  • int copyed, read, nbr_err;
  • printf("\n\r Copyright(C), El Antri Abdellah 2001\n");
  • printf("\n\r *****************************************************************************");
  • printf("\n\r *This program concatenate the file src in the end of file dest. *");
  • printf("\n\r *if the file dest does not exist the programme create it and copy src in it.*");
  • printf("\n\r *file src and file dest must be in current directory *");
  • printf("\n\r *****************************************************************************");
  • if(argc != 3)
  • {
  • printf("\n Name of file src:");scanf("%s",fname_src);
  • printf("\n Name of file dest:");scanf("%s",fname_dest);
  • }
  • else if (argc == 3)
  • {
  • strcpy(fname_src, argv[1]);
  • strcpy(fname_dest, argv[2]);
  • }
  • else {
  • printf("\n\r Syntax error: Concat name_file_src name_file_dest or concat.");
  • printf("\n\r Hit key ..");
  • exit(1);
  • }
  • if((dest = fopen(fname_dest,"a+")) == NULL)
  • {
  • printf("\n Erreur: can't open or create %s",fname_dest);
  • exit(1);
  • }
  • if((src = fopen(fname_src,"r")) == NULL)
  • {
  • printf("\n Erreur: can't open %s",fname_src);
  • fclose(dest);
  • exit(1);
  • }
  • printf("\nGo!\n");
  • while(!feof(src))
  • {
  • printf(".");
  • nbr_err = 0;
  • read = 0;
  • do
  • {
  • nbr_err = nbr_err + 1;
  • read = fread(buf,sizeof(buf),1,src);
  • }while (read != 1 && nbr_err < 5);
  • if(nbr_err == 5)
  • {
  • printf("\n\r Error: Read from %s",fname_src);
  • printf("\n\r Hit key ..");
  • getch();
  • exit(1);
  • }
  • nbr_err = 0;
  • copyed = 0;
  • do
  • {
  • nbr_err = nbr_err + 1;
  • copyed = fwrite(buf,sizeof(buf),1,dest);
  • }while( copyed != 1 && nbr_err < 5);
  • if(nbr_err == 5)
  • {
  • printf("\n\r Error: Write to %s",fname_dest);
  • printf("\n\r Hit key ..");
  • getch();
  • exit(1);
  • }
  • }
  • fclose(src);
  • fclose(dest);
  • return(0);
  • }
/*********************************************************************************/
/*Ce programme est sous license GNU                                              */
/*El Antri Abdellah (Djillali Liabes university, Informatic departement, Algeria)*/
/*E-Mail: El_Emir_2002@yahoo.fr                                                  */
/*********************************************************************************/

/*-------------------------------------------------------------------------*/
/* Compiled with TC++ 3 under windows                                      */
/* Use cc to compil programme under unix/linux                          */
/*-------------------------------------------------------------------------*/

#include<conio.h>
#include<stdio.h>
#include<stdlib.h>

int main(int argc,char **argv)
{
char buf[2*1024], fname_src[50], fname_dest[50];
FILE *src,*dest;
int copyed, read, nbr_err;

printf("\n\r Copyright(C), El Antri Abdellah 2001\n");
printf("\n\r *****************************************************************************");
printf("\n\r *This program concatenate the file src in the end of file dest.             *");
printf("\n\r *if the file dest does not exist the programme create it and copy src in it.*");
printf("\n\r *file src and file dest must be in current directory                         *");
printf("\n\r *****************************************************************************");
if(argc != 3)
  {
  printf("\n Name of file src:");scanf("%s",fname_src);
  printf("\n Name of file dest:");scanf("%s",fname_dest);
  }
  else if (argc == 3)
       {
       strcpy(fname_src, argv[1]);
       strcpy(fname_dest, argv[2]);
       }
       else {
	    printf("\n\r Syntax error: Concat name_file_src name_file_dest or concat.");
	    printf("\n\r Hit key ..");
	    exit(1);
	    }

if((dest = fopen(fname_dest,"a+")) == NULL)
		{
		printf("\n Erreur: can't open or create %s",fname_dest);
		exit(1);
		}
if((src = fopen(fname_src,"r")) == NULL)
      {
      printf("\n Erreur: can't open %s",fname_src);
      fclose(dest);
      exit(1);
      }
printf("\nGo!\n");
while(!feof(src))
     {
     printf(".");
     nbr_err = 0;
     read = 0;
     do
       {
	nbr_err = nbr_err + 1;
	read = fread(buf,sizeof(buf),1,src);
       }while (read != 1 && nbr_err < 5);
     if(nbr_err == 5)
       {
       printf("\n\r Error: Read from %s",fname_src);
       printf("\n\r Hit key ..");
       getch();
       exit(1);
       }
     nbr_err = 0;
     copyed = 0;
     do
       {
	nbr_err = nbr_err + 1;
	copyed = fwrite(buf,sizeof(buf),1,dest);
       }while( copyed != 1 && nbr_err < 5);
     if(nbr_err == 5)
       {
       printf("\n\r Error: Write to %s",fname_dest);
       printf("\n\r Hit key ..");
       getch();
       exit(1);
       }

     }
fclose(src);
fclose(dest);
return(0);

}

 Conclusion

Tout vos questions; propositions seront les bien venu.
Email: El_Emir_2002@yahoo.fr

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip TRANSFERT DE FICHIER VIA LE PROTOCOL TCP/IP
Source avec Zip CHEMIN CRITIQUE PAR LA METHODE PERT
Source avec Zip TRANSFERT DE FICHIER VIA SOCKET UDP
SIMPLEX PRIMAL
Source avec Zip PROBLÈME DES 8 REINES GÉNÉRALISÉ

 Sources de la même categorie

Source avec Zip Source avec une capture PROGRAMME DE SUDOKU par AffreuxJojp
Source avec Zip EVALUATEUR D'EXPRESSION ARITHMÉTIQUE par matrx180vTitanium
Source avec Zip Source avec une capture QBIBLIO GESTION DES PRÊTS par conatic
Source avec Zip Source avec une capture QL-CHATROOM V 1.0 par mature
Source avec Zip Source avec une capture GEOLOCALISATION par ganjarasta

Commentaires et avis

Commentaire de ccarniel le 03/04/2004 08:53:54

coucou, c'est re-moi...
petite faute d'anglais :
         copyed = copied

Trois commentaires:
- La taille de ton buf (10 octets) fait que la copie de ton fichier va devoir faire énormément de boucles pour copier un fichier de quelques Ko. Je te conseillerais de prendre au moins 2Ko voir plus, mais dans ce cas de recourir à malloc en C ou new si tu fais du C++ et dans ce cas d'allouer 10, 50 ou 100Ko, voir même plus.
- Les noms de variables sont plus adéquats que dans ton autre code du parallélogramme.
- Toutefois la variable read n'est pas très bien choisie car il y a dans stdio une fonction read qui est le pendant non bufferisé de fread, ça gêne donc la lecture. Et qui sait peut être que certains compilateurs basiques seraient gênés.

Voila, c tout.

Commentaire de Kornferki le 03/04/2004 15:28:38

Hum, c est un programme cool, mais pourquoi si l objectif est uniquement de concatener deux programmes, je vois pas trop l utilite .....

La commande copy du DOS est de loin suffisante, efficace et rapide non ?????? En plus on peut ainsi concatener une liste de fichiers avec *.

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

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

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