Bonjour, je voudrai faire une traitement identique sur tous les fichiers d'une même extension dans un repertoire.
ici l'extension est le .hpp et je voudrai faire une traitement sur *.hpp
savez vous comment je peux m'y prendre merci.
Bonjour, je voudrai faire une traitement identique sur tous les fichiers d'une même extension dans un repertoire.
ici l'extension est le .hpp et je voudrai faire une traitement sur *.hpp
savez vous comment je peux m'y prendre merci.
Tu listes tous les fichiers dans le dossier courant et tu regardes leur extension.
serait-t-il possible d'avoir un exemple de code s'il vous plait
Soit tu fais du portable avec Boost.Filesystem par exemple ou avec l'API système.
Ca resemblerai à quoi comme code ?
Merci d'avance.
Colb.
Problème résolu ? N'oubliez pas le boutonainsi que le "Pertinent". Ça fait du bien au forum.
Comme je n'ai aucune indication de plateforme, ça ressemblerai à ça :
Très difficile à formaliser...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Pour chaque entrée dans le dossier spécifié Si l'entrée est un fichier et que son extension est ".hpp" Exécuter un traitement sur ce fichier
Hihi, vui ca je vois bien, mais le pbl vient plus du fait d'obtenir l'extention en string.
Il y a surement moyen en splitant le string en utilisant "." comme clef non ?
Ce serait plustot ca que je recheche
A++
Colb![]()
Problème résolu ? N'oubliez pas le boutonainsi que le "Pertinent". Ça fait du bien au forum.
En utilisant string::find_last_of avec string::substr, oui.
L'itération est humaine; la récursion, divine.
Super, je vous tiens au courant
Je vais essayer ces fonctions...
A bientôt
Problème résolu ? N'oubliez pas le boutonainsi que le "Pertinent". Ça fait du bien au forum.
Voila, j'ai trouvé un solution, en code. Sorry pour le temps que j'ai prix, mais j'ai mangé et j'ai étudié pour mon exam d'après demain
.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Char splitParams[] = {'.'}; // parmaètre de split ex {'.', ';', ' '} etc String* currentSplit[]; // variable de travail String* files = System::IO::Directory::GetFileSystemEntries(this->sourceDirectory->Text); // directory courante for (int i=0; i < files->Length; i++) // on parcourt tous les fichiers { currentSplit = files[i]->Split(splitParams); // On split int j = currentSplit->Length; // on prend la longueur (en nombre d'indice) if(currentSplit[j-1]->CompareTo("avi") == 0) // -1 car on commence à 0 pour les indices et "avi" si on veut par exemple que les fichiers avi (on peut mettre mp3 etc...) MessageBox(NULL, "avi trouve !!", "Fenetre de test", MB_OK);
Problème résolu ? N'oubliez pas le boutonainsi que le "Pertinent". Ça fait du bien au forum.
Que faut il comme include pour que ça fonctionne? j'ai une erreur, le compilo ne reconnait pas system
C'est du code managé, donc à priori plus lourd que ce qu'on t'a proposé jusqu'à présent.
Pour l'instant, je vais essayé de faire ça sous windows, quelqu'un a une idée de ce à quoi le code pourrait ressembler. Le code precedent ne fonctionne pas sous visual studio et apparement c lourd.
Je n'arrive pas à me sortir de ce problème c'est incroyable. Lister les fichiers de même extension, c'est pas inimaginable non plus.
Si, il marche, tu dois juste faire du code managé - Visual C++ >= 7.0 - et inclure les bons headers -> MSDN
Je travaille sous visual studio. Le module C++ est visual c++ 2005. J'espère que ça suffit pour faire fonctionner ce programme. Concernant les headers, je ne trouve pas les bon. Serait - t il possible de me les indiquer.
Merci
- Pour programmer sous Windows (API Win32) avec des fonctions comme FindFirstFile(), tout est dans <windows.h>. Si tu n'as pas ce header, c'est que tu dois télécharger le SDK (qui est séparé de Visual 2005 express).
- Pour programmer sous .Net, tu peux programmer en C++/CLI sous Visual 2005.
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
j'ai utiliser findfile que j'ai trouvé sur codeproject, ça fonctionne très bien.
Merci @ bientôt
Même si mon code ne fonctionne pas parfaitement chez toi (même si ca marche chez moi), inspire toi en pour ton code...
En gros :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 myFunction(current_root_directory) { for (all files of current_root_directory) { if(fonction recursive && this_file is a directory) myFunction(this_file); else if(this_file is a file) { // Ne pas tenir compte de tous le nom (C:\MyDocument\Bob\myFile.txt) // On ne retiens que myFile.txt split_params[]={'\\'}; currentPath[] = this_file->split(split_params) // On vérifie l'extention now avec le nom de fichier qu'on a trouvé (sans le path) split_params2[]={'.'}; currentFile[] = currentPath[currentPath->Lenght]->split(split_params2) // on vérifie l'extention : if(currentFile[currentFile->lenght] == 'txt') // txt est l'extention a traiter traiter(currentFile[0]); } } }
Problème résolu ? N'oubliez pas le boutonainsi que le "Pertinent". Ça fait du bien au forum.
Lol on l'a posté en même temps...Envoyé par radicalrider
Ben voila, même pas nesoin de mon meta code...
Bonne chance et bonne continuation
Colb.
Problème résolu ? N'oubliez pas le boutonainsi que le "Pertinent". Ça fait du bien au forum.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager