Bonjour,

Je rencontre un problème de récupréation des données d'un fichier txt.
Mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <io.h>
#include <time.h>
 
int main(int argc,char *argv[])
{
 
	#define MAXCOM 200
	#define MAXCARS 16
	FILE *listefic;
	FILE *ficconv;
	FILE *cr;
	char espace[MAXCARS];
	char espacecom[MAXCOM];
	char *commande = espacecom;
	char *fictemp = espace;
	int interval = 0;
	char fintrait = 0;
	char *reffic;
	int nbfic = 0;
	int i;
 
	struct entry
	{
		char nom[30];
		char ext[4];
		char chemin[150];
	};
	struct entry fichier[100];
 
	/* Récupère les variables passées en argument */
	if (argc > 1)
	{
		/* Positionnement sur C */
		if (chdir("C:/pdf") != 0)
		{
			if (fputs("\nErreur lors du changement de repertoire\r",cr) < 0)
				exit(1);
		}
 
		/* Ouvre le fichier compte-rendu de la conversion */
		if ((cr = fopen("compte_rendu.txt","wb")) == NULL) 
		{
			fprintf(stderr,"\nErreur a l'ouverture du fichier Compte-rendu\n");
			exit(1);
		}
 
		/* Convertit l'argument en int */
		interval = atoi(argv[1]);
		if (interval > 0)
		{
			if (fprintf(cr,"\nValeur du paramètre : %d\r",interval) < 0)
				exit(1);
		}
		else
		{
			printf("Paramètre erroné\n");
			exit(1);
		}
 
		/* Démarre le traitement sans fin */
		do
		{
			if (system("dir pdf*.txt") == 0 && system("dir /b pdf*.txt > conversion.cmd") == 0)
			{
				/* Ouverture du fichier contenant les fichiers à convertir */
 
				if ((listefic = fopen("conversion.cmd","r")) == NULL) 
				{
					if (fputs("\nErreur a l'ouverture du fichier conversion.cmd\r",cr) < 0)
						exit(1);
				}
				/* Allocation mémoire du pointeur de lecture du fichier temporaire */
				if ((reffic = (char *)malloc(17)) == NULL)
				{
					if (fputs("\nIl y a un probleme d'allocation mémoire du pointeur reffic",cr) < 0)
						exit(1);
					fclose(listefic);
					fclose(cr);
					exit(1);
				}
 
				/* Lecture du fichier conversion.cmd */
				while (fgets(reffic,18,listefic) != NULL)
				{
					/* Supprime le caractère de fin de ligne */
					strcpy(fictemp,"                ");
					strncpy(fictemp,reffic,strlen(reffic)-1);
					if (fprintf(cr,"\nfictemp : %s - %d\r",fictemp,strlen(fictemp)) < 0)
						exit(1);
 
					if ((ficconv = fopen(fictemp,"r")) == NULL)
					{
						if (fputs("\nErreur a l'ouverture du fichier temporaire\r",cr) < 0)
						fclose(listefic);
						fclose(cr);
						exit(1);
					}
 
					fgets(fichier[nbfic].nom,30,ficconv);
					fgets(fichier[nbfic].ext,4,ficconv);
					fgets(fichier[nbfic].chemin,150,ficconv);
 
					fclose(ficconv);
					/* Supprime les caractères \n */
					fichier[nbfic].nom[strlen(fichier[nbfic].nom)-1] = '\0';
					fichier[nbfic].ext[strlen(fichier[nbfic].ext)-1] = '\0';
					fichier[nbfic].chemin[strlen(fichier[nbfic].chemin)-1] = '\0';
					fprintf(cr,"\nfichier[nbfic].nom : %s - %d\r",fichier[nbfic].nom,strlen(fichier[nbfic].nom));
					fprintf(cr,"\nfichier[nbfic].ext : %s - %d\r",fichier[nbfic].ext,strlen(fichier[nbfic].ext));
					fprintf(cr,"\nfichier[nbfic].chemin : %s - %d\r",fichier[nbfic].chemin,strlen(fichier[nbfic].chemin));
					nbfic++;
				}
 
/*				for(i=0;i<nbfic;i++)
				{
 
					strcpy(commande,"c:\\Program Files\\PDFCreator\\pdfcreator.exe \nostart PF/");
					strcat(commande,fichier[i].nom);
					strcat(commande,".");
					strcat(commande,fichier[i].ext);
 
					if(system(commande) != 0)
					{
						if (fputs("\nErreur d'execution de la commande move\r",cr) < 0)
							exit(1);
					}*/
					/* Attend la fin de l'exécution de la conversion */
					sleep(30000);
 
					/* Définition de la commande de copie/suppression du fichier pdf */
/*					strcpy(commande,"move /y \\\\srvw2k07\\users\\intranet\\");
					strcat(commande,fichier[i].nom);
					strcat(commande,".pdf \"");
					strcat(commande,fichier[i].chemin);
					strcat(commande,"\"");
					if (fprintf(cr,"commande : %s\n",commande) < 0)
						exit(1);
 
					if(system(commande) != 0)
					{
						if (fputs("\nErreur d'execution de la commande move\r",cr) < 0)
							exit(1);
					}
				}*/
			}
			fclose(listefic);
		}
		while (fintrait == 0);
		fclose(cr);
	}
	else
		printf("Aucun argument passé");
 
	return 0;
}
Le fichier txt :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
NS-06-034
doc
\\\\srvw2k07\\users\\intranet\\Notes de services
Lors de l'exécution le contenu des variables est le suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
Valeur du paramètre : 100
fictemp : pdf852008609.txt - 16
fichier[nbfic].nom : NS-06-034 - 9
fichier[nbfic].ext : do - 2
fichier[nbfic].chemin :  - 0
Il récupère bien la première mais pour fichier[nbfic].ext et fichier[nbfic].chemin il y a un pb.

Auriez-vous une idée ? Merci.