if (pos!=NULL) /* la ligne contient un nom de fonction ? */
{
pos=pos+5;
temp[16]='0円';
while (*pos!='(')
{
i=strlen(temp);
temp[i]=*pos;
temp[i+1]='0円';
pos++;
}
fprintf(fic1,"%s",buffer);
fgets(buffer,512,fic);
fprintf(fic1,"%s",buffer);
fgets(buffer,512,fic);
fprintf(fic1,"%s",buffer);
fprintf(fic1,"%s\");\n",temp);
}
else
fprintf(fic1,"%s",buffer);
}/* fin while */
fclose(fic1);
printf("Fichier %s cree avec succes !\n",nom);
return 0;
}
# et en C ? :-)
Posté par cho7 . En réponse au journal Rajouter automatiquement une ligne dans chaque void d'un source C. Évalué à 1.
une fois compilé : $ ./mon_programme ton_fichier.c et zou il créé ton_fichier.c.new comme tu le veux :-)
enjoy !
/*********************************************************/
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[])
{
FILE *fic;
FILE *fic1;
char buffer[512];
char temp[512];
char nom[512];
char *pos;
int i;
strcpy(temp,"fprintf(stderr,\"");
if ((fic=fopen(argv[1],"r"))==NULL)
{
printf("Impossible d'ouvrir le fichier specifie.\n");
return 1;
}
strcpy(nom,argv[1]);
strcat(nom,".new");
fic1=fopen(nom,"w");
while(fgets(buffer,512,fic),!feof(fic))
{
pos=strstr(buffer,"void ");
if (pos!=NULL) /* la ligne contient un nom de fonction ? */
{
pos=pos+5;
temp[16]='0円';
while (*pos!='(')
{
i=strlen(temp);
temp[i]=*pos;
temp[i+1]='0円';
pos++;
}
fprintf(fic1,"%s",buffer);
fgets(buffer,512,fic);
fprintf(fic1,"%s",buffer);
fgets(buffer,512,fic);
fprintf(fic1,"%s",buffer);
fprintf(fic1,"%s\");\n",temp);
}
else
fprintf(fic1,"%s",buffer);
}/* fin while */
fclose(fic1);
printf("Fichier %s cree avec succes !\n",nom);
return 0;
}