Est-il possible de rechercher un fichier sur le disque dur

johnatemps Messages postés 65 Date d'inscription vendredi 8 juin 2007 Statut Membre Dernière intervention 6 décembre 2012 - 23 mai 2008 à 11:56
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 27 mai 2008 à 15:20

8 réponses

johnatemps Messages postés 65 Date d'inscription vendredi 8 juin 2007 Statut Membre Dernière intervention 6 décembre 2012
23 mai 2008 à 12:00
Bon voila mon souci, Je doit imprimer des fichiers en fonction de leur nom que je conais lors de l'execution du programme.
Par exemple je demande une date a l'utilisateur et en fonction de la date plusieur nom de fichier sont recuperé.
<ol><li>4600218240017/21</li><li>4600218240027/21</li><li>G863211103</li><li>SE904073
</li></ol>Maintenant
avec ces noms il faudrait que le programme les recherche sur le disque
dur mais j'ai beau chercher je ne trouve pas de solution (Si il y en a
une ). Donc j'espere que vous pourez m'aider
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
23 mai 2008 à 12:14
FindFirstFile
FindNextFile
fais une recherche sur ces noms de fonctions, on a deja fait pas mal d'exemples.

ciao...
BruNews, MVP VC++
0
BastienL21 Messages postés 172 Date d'inscription dimanche 10 décembre 2000 Statut Membre Dernière intervention 12 février 2009 2
23 mai 2008 à 17:49
Bonjour,
Si ca peu t'aider, j'ai un petit code qui permet de lister tous les fichiers se trouvant dans un dossier spécifié mais tu devrais pouvoir en fonction des fichier trouvé, pouvoir entrer dedans si ce sont des dossier et recommencer...


Liste tous les fichiers danss C:\:

char Adresse[] = "C:\\*.*"; /*Pour la 1ère *, tu met le nom du fichier et la deuxième éventuelement l'extention et tu pourras les faire changer durant l'éxécution du programme en la formatant( gets(Variable_Contenant_La_Nouvelle_Adresse); (sprintf(Adresse,"%s" , Variable_Contenant_La_Nouvelle_Adresse); )*/
HANDLE hFind;

WIN32_FIND_DATA wFindData;

hFind = FindFirstFile(Adresse, &wFindData);

if(hFind != INVALID_HANDLE_VALUE)
while(1)

{

if(!FindNextFile(hFind, &wFindData)) break;

printf("%s\n", wFindData.cFileName);

}

FindClose(hFind);

Je pense et j'espère que ce code te seras utile

//Cordialement,
0
jeffy131 Messages postés 123 Date d'inscription samedi 14 juillet 2007 Statut Membre Dernière intervention 29 mars 2009 1
24 mai 2008 à 14:40
La récursivité s'apprend à BAC - 8.

Et pas la peine de refaire un code qui est au moins 35 fois dans MSDN.

Il y a même (évidemment) la fonction toute faite en récursif.dans la PSDK...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
johnatemps Messages postés 65 Date d'inscription vendredi 8 juin 2007 Statut Membre Dernière intervention 6 décembre 2012
26 mai 2008 à 15:46
Bon et bien merci de votre aide ! J'avance doucement mais surement et j'ai enfin compris comment rechercher :D.
Par contre j'ai un petit souci ... Je doit lire un fichier comme je vous est dit avec les références les une après les autre avec un saut de ligne pour les séparer. Le problème c'est que lorsque je veux faire une recherche avec la chaine de la 1ere ligne( j'utilise un fgets) il plante. J'en est déduit que c'ete a cause du saut de ligne puisque lorsque je met le nom du fichier il le trouve bien et ca marche parfaitement. Mais je me demande comment ne pas prendre en compte ce saut de ligne
0
johnatemps Messages postés 65 Date d'inscription vendredi 8 juin 2007 Statut Membre Dernière intervention 6 décembre 2012
26 mai 2008 à 16:15
Ha oui une autre petite question.
peut on utiliser une variable pour définir un répertoire ?

Par exemple :

Je veux aller dans un répertoire qui ce trouve a cette adresse.
Dossier = "C:\\abcdef\\test\\SE\\x";
Avec le x une variable que je récupère pdt l'exécution de mon programme. Dans mon cas "SE901" ou "SE902" ect...
ce qui donnerais

Dossier = "C:\\abcdef\\test\\SE\\SE901";
Dossier = "C:\\abcdef\\test\\SE\\SE902";
...
0
johnatemps Messages postés 65 Date d'inscription vendredi 8 juin 2007 Statut Membre Dernière intervention 6 décembre 2012
27 mai 2008 à 15:07
Qqn a t il une idée ?
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
27 mai 2008 à 15:20
A ce point, tu stoppes ton prog et tu te plonges dans un bouquin de C, il est clair qu'il te manque toutes les bases.

si j'ai:
char dossier[264];
contenant deja: D:\truc\bidule\
donc 15 octets
je fais: ultoa(x, dossier + 15, 10);

ciao...
BruNews, MVP VC++
0
Rejoignez-nous