/* monthchange.c */ /* Programme de correction du mois de la date pour un fichier de données VLF F5YG 01/09/2009 This program is placed in the public domain. */ #include int main ( int argc, char * argv [] ) { FILE * infile; FILE * outfile; char cVar, x, y; char pszOutFileName [80] = "data.txt"; int i; switch ( argc ) { case 3: if ( strlen ( argv [2] ) > 63 ) { printf ( "\nchangedate : le nom du fichier cible ne peut excéder 63 caractères (limitation UNIX)\n" ); return 2; } /* endif */ strcpy ( pszOutFileName, argv [2] ); case 2: if ( strlen ( argv [1] ) > 63 ) { printf ( "\nchangedate : le nom du fichier source ne peut excéder 63 caractères (limitation UNIX)\n" ); return 3; } /* endif */ if ( argv [1][0] != '/' ) break; default: printf ( "\nProgramme de correction du mois de la date pour un fichier" ); printf ( "\nde données VLF standard. F5YG 01/09/2009" ); printf ( "\nLe nombre entré doit obligatoirement comporter deux digits.\n" ); printf ( "\nSi aucun fichier cible n'est précisé, celui-ci sera sauvegardé comme 'data.txt'.\n" ); printf ( "\nUsage : daychange [fichier cible]\n" ); return 1; } /* endswitch */ printf ( "\nEntrer le numéro de mois à modifier (deux digits) : " ); x = getchar (); y = getchar (); printf ( "\n\nchangedate : Conversion des dates de '%s' vers '%s'\n", argv [1], pszOutFileName ); infile = fopen ( argv [1], "r" ); if ( infile == NULL ) { printf ( "\nchangedate : Impossible d'ouvrir le fichier source '%s'\n", argv [1] ); return 4; } /* endif */ outfile = fopen ( pszOutFileName, "w" ); if ( outfile == NULL ) { printf ( "\nchangedate : Impossible de créer le fichier cible '%s'\n", pszOutFileName ); return 5; } /* endif */ while ( cVar != 10 ) { cVar = fgetc ( infile ); fputc ( cVar, outfile ); } while ( ( cVar = fgetc ( infile ) ) != EOF ) { fputc ( cVar, outfile ); for ( i = 0; i < 4; i++) { cVar = fgetc ( infile ); fputc ( cVar, outfile ); } cVar = fgetc ( infile ); fputc ( x, outfile); cVar = fgetc ( infile ); fputc ( y, outfile); while ( cVar != 10 ) { cVar = fgetc ( infile ); fputc ( cVar, outfile ); } } fclose ( infile ); fclose ( outfile ); printf ( "\nchangedate : Correction terminée\n" ); return 0; }