Retour d'une fonction

Résolu
Signaler
Messages postés
21
Date d'inscription
mercredi 6 juin 2007
Statut
Membre
Dernière intervention
7 janvier 2010
-
Messages postés
21
Date d'inscription
mercredi 6 juin 2007
Statut
Membre
Dernière intervention
7 janvier 2010
-
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?

3 réponses

Messages postés
21
Date d'inscription
mercredi 6 juin 2007
Statut
Membre
Dernière intervention
7 janvier 2010

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!
Messages postés
21
Date d'inscription
mercredi 6 juin 2007
Statut
Membre
Dernière intervention
7 janvier 2010

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
Messages postés
15189
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
29 novembre 2021
100
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:

void searchFiles([ici, tes paramètres], vector<string> & ListOfFoundFiles)
{
....
}

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