Recuperer des chemin de fichier et analyser ces fichiers
Résolu/Fermé
poparnassus
Messages postés
419
Date d'inscription
vendredi 28 mars 2014
Statut
Membre
Dernière intervention
25 décembre 2019
-
25 juin 2017 à 14:31
yg_be Messages postés 21303 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 mars 2023 - 25 juin 2017 à 22:06
yg_be Messages postés 21303 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 mars 2023 - 25 juin 2017 à 22:06
A voir également:
- Recuperer des chemin de fichier et analyser ces fichiers
- Fichier rar - Guide
- Wetransfer gratuit fichiers lourd - Guide
- Fichier host - Guide
- WeTransfer - Télécharger - Téléchargement & Transfert
- Téléchargez cette archive (dossier compressé). en extraire tous les fichiers dans un dossier local. quel fichier contient l’expression trouverpix ? ✓ - Forum Windows
1 réponse
yg_be
Messages postés
21303
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 mars 2023
1 326
Modifié le 25 juin 2017 à 15:48
Modifié le 25 juin 2017 à 15:48
bonjour,
je suggère d'utiliser fgets, et pas getc.
as-tu déjà utilisé des tableaux et des structures?
je suggère:
je pense que ce serait plus simple de traiter un fichier à la fois:
- découvrir un fichier log
- parcourir ce fichier, et enregistrer les lignes intéressantes dans un nouveau fichier
- passer au fichier log suivant
je suggère d'utiliser fgets, et pas getc.
as-tu déjà utilisé des tableaux et des structures?
je suggère:
struct FichierLog
{
int nb_ligne;
FILE* fichier_log;
}
struct FichierLog fichiers[16];
je pense que ce serait plus simple de traiter un fichier à la fois:
- découvrir un fichier log
- parcourir ce fichier, et enregistrer les lignes intéressantes dans un nouveau fichier
- passer au fichier log suivant
25 juin 2017 à 16:05
En faite si je comprends bien, il faut faire un premier tableau stocker dans une structure, pour qu'il soit accesible depuis toute mes fonctions:
C0: indice
C1: Chemin d'acces du fichier original
C2: Nbr de ligne
C3: Chemin d'acces du fichier copier
C4; Nbr de ligne
Le nombre de x ligne pour le nombre de fichier log trouver.
si je veux un tableau de 7 colonne et de n ligne, où n est definie par la boucle while et stocker dans la variable nb_ligne:
25 juin 2017 à 16:13
Oui cest plus judicieu de traiter un fichier, et puispasser au suivant
25 juin 2017 à 16:27
25 juin 2017 à 16:52
https://openclassrooms.com/courses/parcourir-les-dossiers-avec-dirent-h
Modifié le 25 juin 2017 à 19:09
prototype.h
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <dirent.h> //typedef struct PATH_LOG PATH_LOG; typedef struct FICHIER_LOG FICHIER_LOG ; struct _ORIGINE { int nb_line; FILE* fichier_log; }; struct _COPY { int nb_line; FILE* fichier_log; }; struct FICHIER_LOG { struct _COPY _copy[100]; struct _ORIGINE _origine[100]; }; void methode_2(FICHIER_LOG *fichier_log]); void init_methode_2(FICHIER_LOG *fichier_log);main.c
#include "prototype.h" int main(int argc, char *argv[]) { printf(".......Analyse de fichier log.......\n\n"); FICHIER_LOG fichier_log; init_methode_2(&fichier_log); DIR* folder = NULL; struct dirent* fichierLu = NULL; folder = opendir("C:\\Users\\AZOTE\\Desktop\\Archive_LOG\\Archive_LOG\\local"); char *p; int i=0; while ((fichierLu = readdir(folder)) !=NULL) { i++; p = strrchr(fichierLu->d_name, '.'); if(p && !strcmp(p, ".TXT")) printf("i= %d :%s \n",i, fichierLu->d_name); fichier_log._origine[i].fichier_log = fichierLu->d_name ; } printf(" %ld \n",fichier_log._origine[i].fichier_log); // Ici j'ai "0" comme resultat ... Comprend pas là ou je me trompe methode_2(&fichier_log); return 0; }methode_2.c
#include "prototype.h" void init_methode_2(FICHIER_LOG *fichier_log) { int i; for(i=0 ; i<100 ; i++) { fichier_log->_origine[i].fichier_log = NULL; fichier_log->_origine[i].nb_line = 0; fichier_log->_copy[i].fichier_log = NULL; fichier_log->_copy[i].nb_line = 0; } } void methode_2(FICHIER_LOG fichier_log[100]) { fichier_log[0]._origine.fichier_log = fopen("./LOG/ArchiveLog/Archive_LOG/local/2016-01-16_2016-02-15.TXT","r"); // if (fichier_log[0]._origine.fichier_log != NULL) { int lecture; fichier_log[0]._origine.nb_line = 0; //Comptage des lignes while ((lecture = getc(fichier_log[0]._origine.fichier_log)) != EOF) { if (lecture == '\n') ++fichier_log[0]._origine.nb_line; //printf("Ligne: %d lecture:%c \n",FichierLog.nb_ligne,lecture); //system("CLS"); //system("PAUSE"); } //RESULTAT printf("Nombre de ligne: %d \n\n",fichier_log[0]._origine.nb_line); /* char dest[250]; while ((c = getc(fichier_log)) != EOF) { strcat(dest,c); if (c == "") break; } */ fclose(fichier_log[0]._origine.fichier_log); } else { printf("Impossible d'ouvrir le ficier log1"); } }