noulii
Messages postés21Date d'inscriptionmercredi 6 juin 2007StatutMembreDernière intervention 7 janvier 2010
-
27 juin 2007 à 10:49
noulii
Messages postés21Date d'inscriptionmercredi 6 juin 2007StatutMembreDernière intervention 7 janvier 2010
-
29 juin 2007 à 10:18
J'ai utilisé la fonction suivante, venant de "bruno" que j'ai trouvé sur ce site :
HANDLE hfind;
WIN32_FIND_DATA wfd;
// Initialise la recherche
hfind = FindFirstFile("c:\\mes documents\\*.*", &wfd);
//Si quelque chose a été trouvé
if (hfind != INVALID_HANDLE_VALUE)
{
// Commence la boucle
do
{
// Si ce n'est pas le répertoire courant DOS ...
if (wfd.cFileName[0] != '.')
{
// Affiche le nom du fichier trouvé
cout << wfd.cFileName << endl;
}
// Recherche le prochain
}while (FindNextFile(hfind, &wfd));
// Recherche terminée, ferme la recherche
FindClose(hfind);
// C'est terminé!!!
cout << "\rRecherche terminée!" << endl;
}
else
{
cout << "Aucun fichier n'a été trouvé.\r";
}
Ce code fonctionne très bien.
Maintenant je voudrais en faire une fonction_recherche.
Le probléme étant que je n'arrive pas à retourner "wfd.cFile.Name" qui contient le nom de mon fichier.
Est ce que quelqu'un pourrait m'aider?
noulii
Messages postés21Date d'inscriptionmercredi 6 juin 2007StatutMembreDernière intervention 7 janvier 2010 29 juin 2007 à 10:18
J'ai reussi à m'en sortir, je te remercie quand même de ton aide.
Ce que j'ai fait c'est que j'ai passé un char* chaine en paramétre et j'ai mis (grace à strcpy) wdf.cFileName ds chaine. Je n'ai mis aucun retour.
Le resultat est que je recupére bien ce que contient cFileName!
noulii
Messages postés21Date d'inscriptionmercredi 6 juin 2007StatutMembreDernière intervention 7 janvier 2010 27 juin 2007 à 11:40
J'ai reussi à retourner l'adresse de wfd.cFileName en utilisant un char*
Seulement j'ai encore un soucis.
Ca me retourne l'adresse de l'espace mémoire de wfd.cFileName, mais je voudrais accéder à ce qui est écrit dedans.
wfd.cFileName contient "fichier.xls"
je fais appel à ma fonction qui me retourne quelque chose comme ça 0x0013ef18
Je voudrais mettre, ce que contient 0x0013ef18 en paramétre d'une autre fonction.
Si quelqu'un pouvait m'aider s'il vous plait, parce que j'ai beau chercher je ne voit vraiment pas comment faire.
Merci
BunoCS
Messages postés15426Date d'inscriptionlundi 11 juillet 2005StatutModérateurDernière intervention28 novembre 2023102 27 juin 2007 à 14:54
Salut,
Si j'ai bien compris ton besoin, tu voudrais une fonction qui te retourne tous les fichiers trouvés lors d'une recherche. Je pense que tu devrais utiliser un prototype de ce type:
Tu insères le code que tu as et, au lieu d'afficher le nom du fichier trouvé, tu l'insères à ta liste comme ceci:
ListOfFoundFiles.push_back(wfd.cFileName);
J'espère que mes explications sont assez claires... Sinon, tu sais où poster
Bon courage
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Le site de mon mariage