Je veux récupere des données dans un fichier teste qui sont contenu entre une chaine de caractere et " .
Aucun problème pour des petits fichier mais j'explose la memoire des que le fichier atteint 5k
Auriez vous une idee?
/**************************************************************************************************
Fonction lecture_fichier
Parcourt du script source VB puis recupère l'ensemble des timers du fichier
Retourne le nomnre de timer et un tableau
**************************************************************************************************/
struct timer
{
int nombre;
string nom[20];
};
/********************************** Fin de la fonction ****************************************/
timer lecture_fichier(char *chaine,char *nom_scn)
{
FILE *File;
int i = 0;
int j = 1;
int n = 0;
char tab[10000];
timer timer;
char tim[15];
char nom_fic[256];
*c;
char cheminsrc[256] ="c:\\\\progra~1\\\\citratest\\\\";
strcpy(nom_fic,nom_scn);
strcat(cheminsrc,nom_fic);
strcat(cheminsrc,"\\\\");
strcat(cheminsrc,nom_fic);
strcpy(nom_fic,cheminsrc);
strcat(nom_fic,".bas");
printf("\\nrecherche des timers, parcours du fichier %s.\\n", nom_fic);
memset(tab, 0, 10000); // buffer a 0
File = fopen(nom_fic, "r");
while((tab[i] = fgetc(File))!= EOF) i++; // ecrit le fichier dans le buffer
c = tab; // pointeur sur le buffer
while(c = strstr(c, chaine))
{
// c pointe sur StarTimer,ajout strlen(chaine)+3 pour pointer sur ce qu'il y a apres le "
c += strlen(chaine)+3;
i = 0;
while(*c != '"')
{
tim[i++] = *c++; // copie
}
tim[i] = 0; // zero final
printf("%s %i: %s\\n",chaine,j, tim);
timer.nom[j]=tim;
j++;
}
timer.nombre=j-1;
if( fclose( File ) )
_fcloseall();
return timer;
}