Retour d'une fonction

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

3 réponses

noulii Messages postés 21 Date d'inscription mercredi 6 juin 2007 Statut Membre Derniè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!
3
noulii Messages postés 21 Date d'inscription mercredi 6 juin 2007 Statut Membre Derniè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
0
BunoCS Messages postés 15330 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 novembre 2022 103
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:

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
0