Hello,
I have a problem with my source. I want to save only the text after <body and before </body> in the php file.
I can see : "Impossible a ouvrir " only and a Windows Debuggage Error...
I think the error is in my cFileName. I'm not sure.
Thanks...
My code :
Code:
#include <stdio.h>
#include <windows.h>
#include <direct.h>
/*Déclariations des fonctions :*/
void verif(char*);
void main(int argc, char *argv[])
{
/*Declarations des variables :*/
HANDLE hdlfff;
LPCTSTR dir;
WIN32_FIND_DATA Ffd;
char * buffer;
char * buffer1;
printf("Programme par camje_lemon pour la reconstruction du site univers-hp.net v8.\n");
getcwd ( buffer, 512 );
buffer1=(char*)malloc(sizeof(char)*(sizeof(buffer)+7));
sprintf(buffer1,"%s/*.php",buffer);
dir = (LPCTSTR) buffer1;
printf("Lancement de la verification de tous les fichiers .php du dossier courant (%s).\nTout ce qui sera avant <body> et apres </body> sera supprimé.\n",buffer1);
hdlfff = FindFirstFile(dir,&Ffd);
printf("%s\n",Ffd.cFileName);
verif(Ffd.cFileName);
while (FindNextFile(hdlfff,&Ffd))
{
verif(Ffd.cFileName);
}
printf("Fin du programme.\n");
}
void verif(char*fname)
{
/*Déclaration variables :*/
FILE *Fichier;
char *tmp;
char *final;
int test;
int liens;
int taille;
printf("Commencement de la réécriture de %s\n",fname);
test=2;
liens=0;
if ((Fichier = fopen(fname, "a"))==NULL)
{
printf("Impossible a ouvrir\n");
}
fseek(Fichier,0,SEEK_SET);
taille= ftell(Fichier);
final=(char*)malloc(sizeof(char)*(taille+1));
fseek(Fichier,0,SEEK_SET);
while(fgets(tmp,sizeof(tmp),Fichier)!=NULL)
{
if (strstr(tmp,"</body>"))
{
test=2;
}
if (test == 1)
{
sprintf(final,"%s%s",final,tmp);
if (strstr(tmp,"<a"))
{
liens++;
}
}
if (strstr(tmp,"<body"))
{
test=1;
}
}
if(fclose(Fichier)!=0)
{
printf("Erreur lors de la fermeture du fichier.\n");
}
if ((Fichier = fopen(fname, "a"))==NULL)
{
printf("Impossible a ouvrir\n");
}
if(fprintf(Fichier,final)<0)
{
printf("Erreur lors de la réécriture.\n");
}
if(fclose(Fichier)!=0)
{
printf("Erreur lors de la fermeture du fichier.\n");
}
printf("Le fichier %s a bien été réécrit (Tout ce qu'il avait avant <body ou apres </body> a été supprimé). Il contient %d lien(s).\n",fname,liens);
}