Gestion des fichiers en C

dreams moon -  
 dreams moon -
Bonjour,

je suis en train de programmer une petite application en C " un filtre de répertoire téléphonique".Mon répertoire est un ensemble de fichiers de structure Personne.une personne est identifieé par (nom,num_téléphone,adresse,date_naissance,mail).
Donc j'ai diviser mon programme en fonctions : fonctions de filtrage(contrôle sur le numero,l'@mail et la date de naissance),fonction Affiche qui me permet d'afficher un fichier de mon répertoire et la derniére fonction c'est fonction cherche_ Event : elle consiste à:
- récuperer la date d'aujoud'hui (date system).
-la comparer par la date de naissance de chaque personne de mon répertoire.
-si c'est ok ,récupérer le nom de la personne correspondante.
-Mettre le résultat dans un ficher Fich_anniv qui va contenir les noms de toutes les personnes dont leurs anniversaires correspond à la semaine en cours .
-Afficher le fichier résultat.

Le processus est clair mais le problème c'est que je ne sais pas comment le faire réelement par exemple comment peut-on ouvrir un fichier depuis son chemin puis comment passer au fichier suivante,et ainsi de suite ,le fait de parcourir tous les fichiers de mon rep c'est absolument flou pour moi.
Merci d'avance pour votre réponse. ;-)
A voir également:

1 réponse

Hxyp Messages postés 401 Date d'inscription   Statut Membre Dernière intervention   54
 
Bonjour,
Il n'y a pas de fonctions C standard pour lister un répertoire/les fichiers dans un dossier. Ça peut être fait en utilisant l'api sous windows exemple :
#include <stdio.h>
#include <windows.h>

int main(void){
    HANDLE hfind;
    WIN32_FIND_DATA wfd;
    SetCurrentDirectory("c:\\");
    hfind=FindFirstFile("*",&wfd);
    if(hfind!=INVALID_HANDLE_VALUE){
        while(FindNextFile(hfind,&wfd)){
            printf("%x\t%s\n",wfd.dwFileAttributes,wfd.cFileName);
        }
    }
    return 0;
}

Il y a aussi l'header dirent.h (POSIX) qui fonctionne sous linux évidemment mais aussi sous windows si vous utilisez gcc. https://en.wikipedia.org/wiki/Dirent.h
exemple :
#include <stdio.h>
#include <dirent.h>

int main(void){
    DIR *d;
    struct dirent *sd;
    d=opendir("c:\\");
    if(d){
        while((sd=readdir(d))){
            printf("%s\n",sd->d_name);
        }
        closedir(d);
    }
    return 0;
}
0
dreams moon
 
merciiiii :))
0