| 12
 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
 
 |  
	/* verifier la presence d'un fichier Log */
	/* le nom du fichier rechercher est egal au nom de dossier avec extension .log */
	gchar *NDT;
	NDT = g_path_get_basename(V_Entry1);// extraire le nom du dossier sur le chemin selectionner
	char *V_slach; V_slach = "/";
	char *V_log; V_log =".log";
	const gchar *FChemin;
	FChemin = g_strconcat(V_Entry1, V_slach, NDT, V_log, NULL);//concatener chemin+nom fichier
	FILE *fp = NULL;
	fp = fopen(FChemin,"rb");
	if (fp == NULL)
	{
		/* le fichier log n'existe pas */ 
			/* création du fichier log */
			FILE *CFLog = NULL; // Creation_Fichier_Log
			CFLog = fopen(FChemin,"w");
			fprintf(CFLog,"<?xml version='1.0' encoding='UTF-8'?>\n");	
			char *V_TagD; V_TagD = "<";
			char *V_TagF; V_TagF = ">";
			char *V_TagRacine = "racinetxt";
			char *V_TagT;
			V_TagT = g_strconcat(V_TagD, V_TagRacine, V_TagF, NULL);
			fprintf(CFLog,"\t");		fprintf(CFLog,V_TagT);			fprintf(CFLog,"\n");
			V_TagT = g_strconcat(V_TagD, V_slach, V_TagRacine, V_TagF, NULL);
			fprintf(CFLog,"\t");		fprintf(CFLog,V_TagT);			fprintf(CFLog,"\n");
			fclose(CFLog);
			xmlDocPtr doc;
			xmlNodePtr racine, New_Noeud;
			doc = xmlParseFile(FChemin);
			racine = xmlDocGetRootElement(doc);
			/* Parametre - Chemin_Dossier_a_Traiter = V_Entry1 */
			New_Noeud =	xmlNewNode(NULL,"Parametre");
			xmlSetProp(New_Noeud,"Chemin_Dossier_a_Traiter",V_Entry1);
			/* Parametre - Numeration_Page = V_ComboBox2 */
			xmlSetProp(New_Noeud,"Numeration_Page",V_ComboBox2);
			char VVBox2[2];
			sprintf(VVBox2,"%d",CBox2); //converti un "int" en "char" 
			xmlSetProp(New_Noeud,"N_Numeration_Page",VVBox2);
			xmlAddChild(racine,New_Noeud);
			DIR * dirdossier;
			dirdossier = opendir(V_Entry1);
			if (dirdossier != NULL)
			{
				int ComptFichier = 0;
				struct dirent *nomfichier;
				while ((nomfichier = readdir(dirdossier)) != NULL)
				{
					char *extens;
					char *reffext = "txt";
					extens = strstr(nomfichier->d_name, "txt");
					if (extens != NULL)
					{
						if (strcmp(extens, reffext) == 0)
						{
							/* Nom_Fichiers */
							New_Noeud =	xmlNewNode(NULL,"Fichier");
							xmlSetProp(New_Noeud,"Nom_Fichier",nomfichier->d_name);
							xmlAddChild(racine,New_Noeud);
							ComptFichier++;
						}
					}
				}//sortie while
				/* CountFichier - Nombre_de_Fichier_a_Traiter = X */
				New_Noeud =	xmlNewNode(NULL,"CountFichier");
				char *V_CountFichier;
				sprintf(V_CountFichier,"%d",ComptFichier); //converti un "int" en "char" 
				xmlSetProp(New_Noeud,"Nombre_de_Fichier_a_Traiter",V_CountFichier);
				xmlAddChild(racine,New_Noeud);
			}
			closedir(dirdossier);
			xmlSaveFile(FChemin,doc);
			xmlFreeDoc(doc);
			VBuff = "- Fichier Log Crée \n";
			gtk_text_buffer_get_start_iter(text_buffer,&IterStart);
			gtk_text_buffer_insert(text_buffer,&IterStart,VBuff,-1);
 
	/* Creation du Dossier Post Traitement */
			FChemin = g_strconcat(V_Entry1, V_slach, "BINAIRE", NULL);//concatener chemin+binaire
			if(-1 == mkdir(FChemin,S_IRWXU))
			{
				VBuff = "- Création du repertoire BINAIRE échoué \n";
				gtk_text_buffer_get_start_iter(text_buffer,&IterStart);
				gtk_text_buffer_insert(text_buffer,&IterStart,VBuff,-1);
			}
			else
			{
				VBuff = "- Répertoire BINAIRE Crée \n";
				gtk_text_buffer_get_start_iter(text_buffer,&IterStart);
				gtk_text_buffer_insert(text_buffer,&IterStart,VBuff,-1);
			}
	}
	else
	{
		fclose(fp);
		/* extraire une donnée du fichier Log   */
		xmlDocPtr mog;
		xmlNodePtr racinemog;
		xmlXPathContextPtr contextmog;
		xmlXPathObjectPtr objmog;
		mog = xmlParseFile(FChemin);
		racinemog = xmlDocGetRootElement(mog);
		contextmog = xmlXPathNewContext(mog);
		int i;
			objmog = xmlXPathEvalExpression("/racinetxt/Parametre[@type='Chemin_Dossier_a_Traiter']/text()",contextmog);
			for(i=0;i<objmog->nodesetval->nodeNr;i++)
			{
				xmlNodePtr n = objmog->nodesetval->nodeTab[i];
				V_Entry1 = n->content;
			}
		xmlXPathFreeObject (objmog);
		xmlXPathFreeContext (contextmog);
		xmlFreeDoc(mog);
	} | 
Partager