Conversion de fichier texte dos/windows en fichier texte unix

Description

Ce code va transformer des fichiers ecrit sous dos/windows en fichier texte unix .
C-a-d enlever les caractères suplémentaires non pris en charge par unix.

Source / Exemple :


/*************************************************************/
/* UDL, facultee des sciences, departement d'informatique                        */
/* El Antri Abdellah                                                                                */
/* Email: el_emir_2002@yahoo.fr                                                            */
/* Compiler avec tc++ 3 sous dos et cc sous unix SunOs/linux                    */
/*************************************************************/
/*************************************************************/
/* Ce programme trnsforme un ficier texte ecrit sous dos ou                      */
/* windows en un fichier texte de format unix                                           */
/* ***********************************************************/

#include<stdio.h>
#include<stdlib.h>
#include<errno.h>
#include<string.h>

#ifdef _cplusplus
#include<io.h>
#include<dos.h>
#endif

void erreur_ouverture_fichier(char *nom_fichier, int err)
{
printf("\n Erreur d'ouvrir le fichier nome: %s",nom_fichier);
switch(err)
     {
     case ENOENT:printf("\n Chemin ou fichier introuvable.\n");break;
     case EMFILE:printf("\n Trop de fichiers ouverts.\n");break;
     case EACCES:printf("\n Acces refuse.\n");
     }
}

int main(int argc, char **argv)
{
char nom_fichier[100]  ;
FILE *ptr_nom_fichier  ;
FILE * ptr_fichier_temp;
char c                 ;

printf("\n*Ce prog transforme un fichier TXT sous dos/win au format unix.*\n");
if(argc == 1)
  {
  printf("\n Donner le nom de fichier:");
  scanf("%s",nom_fichier);
  }else if(argc == 2)
	  strcpy(nom_fichier,argv[1]);
             else 
	     {
		     printf("\n Trop de parametre.\n");
		     exit(1);
	     }
ptr_nom_fichier = fopen(nom_fichier,"r");
if(ptr_nom_fichier == NULL)
  {
  erreur_ouverture_fichier(nom_fichier,errno);
  exit(1);
  }
ptr_fichier_temp = fopen("temp","w+");
if(ptr_fichier_temp == NULL)
   {
   erreur_ouverture_fichier("fichier temporaire",errno);
   }
while(!feof(ptr_nom_fichier))
     { 
     c = getc(ptr_nom_fichier);
     if( c != 13 && c != EOF)
        fputc(c,ptr_fichier_temp);
     }
fclose(ptr_nom_fichier);
if(fseek(ptr_fichier_temp, 0, SEEK_SET)<0)
   { 
	printf("\nUne erreur est survenu.\n");
	exit(1);
   }
ptr_nom_fichier = fopen(nom_fichier,"w");
while(!feof(ptr_fichier_temp))
     {
     c = getc(ptr_fichier_temp);
     if(c != EOF)
        fputc(c,ptr_nom_fichier)  ;
     }
fclose(ptr_nom_fichier) ;
fclose(ptr_fichier_temp);
system("rm temp");
return 0;
}

Conclusion :


Le programme va chercher les caractères retour a la ligne(code ascii 13).

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.