Recherche de fichier en C++
Fermé
warskull
Messages postés
20
Date d'inscription
vendredi 28 mai 2010
Statut
Membre
Dernière intervention
31 octobre 2012
-
28 mai 2010 à 14:41
loupius Messages postés 697 Date d'inscription dimanche 1 novembre 2009 Statut Membre Dernière intervention 31 décembre 2017 - 1 juin 2010 à 11:19
loupius Messages postés 697 Date d'inscription dimanche 1 novembre 2009 Statut Membre Dernière intervention 31 décembre 2017 - 1 juin 2010 à 11:19
A voir également:
- Recherche de fichier en C++
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier host - Guide
- Ouvrir fichier .bin - Guide
10 réponses
warskull
Messages postés
20
Date d'inscription
vendredi 28 mai 2010
Statut
Membre
Dernière intervention
31 octobre 2012
28 mai 2010 à 23:37
28 mai 2010 à 23:37
Je code sur Code::Blocks et je compile avec Qt.
Je l'ai pas précisé mais j'ai commencé à apprendre le C que depuis 2 semaines c'est pour ça que j'ai des difficultés la ^^.
Et plus précisement j'aimerais savoir comment faire parcourir au programme tout les dossiers pour récuperer les fichiers pouvant correspondre à la recherche et ensuite pouvoir ouvrir celui que l'on veut.
Je l'ai pas précisé mais j'ai commencé à apprendre le C que depuis 2 semaines c'est pour ça que j'ai des difficultés la ^^.
Et plus précisement j'aimerais savoir comment faire parcourir au programme tout les dossiers pour récuperer les fichiers pouvant correspondre à la recherche et ensuite pouvoir ouvrir celui que l'on veut.
loupius
Messages postés
697
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
31 décembre 2017
148
29 mai 2010 à 00:09
29 mai 2010 à 00:09
En C, il y a les fonctions: opendir(), readdir() et closedir(). Ceci donne accès au contenu des répertoires.
Avec Qt, donc en C++, il y a les classes 'QDir', 'QFile' & 'QFileInfo' qui permettent l'accès au contenu des répertoires et aux caractéristiques des fichiers (lire l'excellente documentation de Qt).
Bonne continuation.
Avec Qt, donc en C++, il y a les classes 'QDir', 'QFile' & 'QFileInfo' qui permettent l'accès au contenu des répertoires et aux caractéristiques des fichiers (lire l'excellente documentation de Qt).
Bonne continuation.
warskull
Messages postés
20
Date d'inscription
vendredi 28 mai 2010
Statut
Membre
Dernière intervention
31 octobre 2012
31 mai 2010 à 09:38
31 mai 2010 à 09:38
Merci pour les fonctions mais je suis un peu perdu, je n'arrive pas à les utiliser ^^.
J'ai trouvé quelques exemples sur internet mais même la ça me met des erreurs.
Quelqu'un pourrait me donner un exemple pour parcourir les dossiers puis en ouvrir un ?
Merci.
J'ai trouvé quelques exemples sur internet mais même la ça me met des erreurs.
Quelqu'un pourrait me donner un exemple pour parcourir les dossiers puis en ouvrir un ?
Merci.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
yacleouf
Messages postés
438
Date d'inscription
mercredi 11 mars 2009
Statut
Membre
Dernière intervention
8 juin 2015
39
31 mai 2010 à 09:50
31 mai 2010 à 09:50
Salut, commence par regarder du coté d'un algorithme de recherche par dichotomie, ce cours peut déjà t'aider... enfin je l'espère pour toi !
http://www.netprof.fr/Voir-le-cours-en-video-flash/Informatique/Programmation/Etude-d-un-algorithme-de-recherche,6,85,558,1.aspx
http://www.netprof.fr/Voir-le-cours-en-video-flash/Informatique/Programmation/Etude-d-un-algorithme-de-recherche,6,85,558,1.aspx
warskull
Messages postés
20
Date d'inscription
vendredi 28 mai 2010
Statut
Membre
Dernière intervention
31 octobre 2012
31 mai 2010 à 13:16
31 mai 2010 à 13:16
ça me sert a rien cette vidéo, je sais déjà comment faire des algorithme, le problème c'est que j'ai commencé le C++ il n'y a pas longtemps alors je sais pas trop m'en servir.
C'est pour ça que j'aimerais des exemples de code pour bien voir comment m'y prendre.
C'est pour ça que j'aimerais des exemples de code pour bien voir comment m'y prendre.
yacleouf
Messages postés
438
Date d'inscription
mercredi 11 mars 2009
Statut
Membre
Dernière intervention
8 juin 2015
39
31 mai 2010 à 13:59
31 mai 2010 à 13:59
http://www.prog-info.org/cpp/trietrecherche/dichotomie.php
sa t'aide?
sa t'aide?
warskull
Messages postés
20
Date d'inscription
vendredi 28 mai 2010
Statut
Membre
Dernière intervention
31 octobre 2012
31 mai 2010 à 14:05
31 mai 2010 à 14:05
Non toujours pas désolé...
L'algorithme pour rechercher je le comprend mais là ou j'y arrive pas, c'est pour utiliser les fonctions nécessaires pour faire une recherche dans les dossiers puis les ouvrir.
Comme celle que loupious a cité un peux plus haut, je n'arrive pas à les intégrer à mon programme.
L'algorithme pour rechercher je le comprend mais là ou j'y arrive pas, c'est pour utiliser les fonctions nécessaires pour faire une recherche dans les dossiers puis les ouvrir.
Comme celle que loupious a cité un peux plus haut, je n'arrive pas à les intégrer à mon programme.
yacleouf
Messages postés
438
Date d'inscription
mercredi 11 mars 2009
Statut
Membre
Dernière intervention
8 juin 2015
39
31 mai 2010 à 19:12
31 mai 2010 à 19:12
j'aurais essayer! bon courage! (perso je fais la même mais en vba excel...)
warskull
Messages postés
20
Date d'inscription
vendredi 28 mai 2010
Statut
Membre
Dernière intervention
31 octobre 2012
1 juin 2010 à 08:29
1 juin 2010 à 08:29
zut alors comment vais-je faire ?
loupius
Messages postés
697
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
31 décembre 2017
148
1 juin 2010 à 11:19
1 juin 2010 à 11:19
Pour les fonctions que tu ne connais pas, tu dois rechercher comment les utiliser. Faire un 'man' sur la toile n'est pas très compliqué.
Je te donne un exemple de parcours de répertoire et ce sera à toi de l'adapter à tes propres besoins.
Bonne réflexion.
Je te donne un exemple de parcours de répertoire et ce sera à toi de l'adapter à tes propres besoins.
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <dirent.h> #include <sys/types.h> #include <sys/stat.h> void traitementRepertoire(const char* nomRepert) { DIR* dir; struct dirent* dirent; struct stat status; char name[NAME_MAX]; // Je suppose ne pas dépasser cette longueur if (!(dir = opendir(nomRepert))) return; while ((dirent = readdir(dir))) { if (!strcmp(dirent->d_name, ".") || !strcmp(dirent->d_name, "..")) continue; strcpy(name, nomRepert); strcat(name, "/"); strcat(name, dirent->d_name); if (!stat(name, &status)) { if (S_ISDIR(status.st_mode)) traitementRepertoire(name); else if (S_ISREG(status.st_mode)) printf("%s\n", name); } } closedir(dir); } int main(int argc, char* argv[]) { if (argc > 1) traitementRepertoire(argv[1]); return(EXIT_SUCCESS); }Toutes les fonctions utilisées dans cet exemple sont définies Posix; avec Linux tu as quelques fonctions supplémentaires très puissantes qui sont définies dans Unix98 comme 'scandir' ou 'fnmatch' et qui simplifient énormément la recherche de fichiers.
Bonne réflexion.