begin process at 2012 05 30 18:59:24
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Windows

 > 

MFC

 > 

Tri de fichier dans repertoire selon type d'extension et une partie du nom connu


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Tri de fichier dans repertoire selon type d'extension et une partie du nom connu

mercredi 15 novembre 2006 à 17:33:29 | Tri de fichier dans repertoire selon type d'extension et une partie du nom connu

develdelphi


Bonjour,

J'ai un dossier qui contient des fichiers de type .txt et qui sont

enregistrés avec un nom dans lequel figure la date et l'heure à la

quelle le fichier a été enregistré.
De plus ces fichiers peuvent avoir dans leurs noms également deux

types de texte TexteA et TexteB.

En voici un exemple:
TexteA_20050514_152938_.txt

Je dois en fait trier dans un dossier le dernier fichier enregistré en

date et ayant dans son nom le mot "TexteA" et dont la date est la plus

récente. Et ensuite afficher le contenu de ce fichier dans une listbox.

J'ai une fonction qui recupere les noms des fichiers mais sans

distinction du mot "TexteA", de plus je dois inclure un code pouvant

prendre le dernier fichier en date.

Je pense a utiliser la methode ftLastAccessTime, comment pourrais

je faire?

Ma fonction actuelle n'est pas opérationnelle au niveau du tri
 
int Cmaclasse::Cherche_Affiche_txt()
{

string chemin;
HANDLE hfind;
WIN32_FIND_DATA wfd;

hfind = FindFirstFile ("C:\\dossier\\Donnes\\Resultats\\*.txt", &wfd);

while (hfind!=INVALID_HANDLE_VALUE)
{
FindNextFile (hfind,&wfd);
chemin=wfd.cFileName;
TRACE ("Next file name is %s\n", wfd.cFileName);
}

FindClose(hfind);

m_ctrlistnfo.AddString (chemin.c_str()); //ici j'affiche le nom du fichier


return 0;
}

mercredi 15 novembre 2006 à 21:50:12 | Re : Tri de fichier dans repertoire selon type d'extension et une partie du nom connu

Ombitious_Developper

Salut:

Utilises la fonction fstat.
jeudi 16 novembre 2006 à 00:59:05 | Re : Tri de fichier dans repertoire selon type d'extension et une partie du nom connu

BruNews

Administrateur CodeS-SourceS
C'est déja assez le souk (win32 + MFC+ std...) sans en rajouter avec fstat.
Que tu appelles API depuis MFC normal mais 'string' n'a rien à faire dans cette galère, il y a CString pour cela.

Pas difficile de regarder si les 6 premiers octets du nom font 'TextA', suffit d'analyser wfd.cFileName[0 to 5].
Si TextA est dedans:
DWORD dat;
char *c = wfd.cFileName;
while(*c) {
  if(*c == '_') goto datFOUND;
  c++;
}
// ICI '_' pas trouvé tu passes au fichier suivant

datFOUND;
dat = atoi(c+1);
tes dates étant bien écrites en YYYYMMDD, no prob de comparaison <, >, =<, >= tout fonctionnera.

ciao...
BruNews, MVP VC++
jeudi 16 novembre 2006 à 09:01:52 | Re : Tri de fichier dans repertoire selon type d'extension et une partie du nom connu

develdelphi


Merci beaucoup,

Voici mon code qui a changé, j'ai toujours deux erreurs au niveau de la ligne :

  " if (sfilename[0,5] == "TexteA") "

1. pas de conversion  'const char *' en 'int'
2. niveau d'indirections de 'int et de 'const char [6]' sint différents

Et pour la comparaison je ne sais pas comment bien faire?



Ma fonction actuelle :
 
int Cmaclasse::Cherche_Affiche_txt()
{

string sfilename;


HANDLE hfind;
WIN32_FIND_DATA wfd;

hfind = FindFirstFile ("C:\\dossier\\Donnes\\Resultats\\*.txt", &wfd);

while (hfind!=INVALID_HANDLE_VALUE)
{
   FindNextFile (hfind,&wfd);
   sfilename=wfd.cFileName;
   TRACE ("Next file name is %s\n", wfd.cFileName);

    if
(sfilename[0,5] == "TexteA")
   {
       DWORD dat;
      char *c = wfd.cFileName;
     
      while
(*c)
      {
         if(*c == '_') goto datFOUND;
         c++;
  
      datFOUND:
           dat = atoi(c+1);   //  que dois je passer à 'dat' ?
   
      }

  }

}

FindClose(hfind);

m_ctrlistnfo.AddString (sfilename.c_str()); //ici j'affiche le nom du fichier

return 0;
}

jeudi 16 novembre 2006 à 19:56:05 | Re : Tri de fichier dans repertoire selon type d'extension et une partie du nom connu

BruNews

Administrateur CodeS-SourceS

encore cette daube de string....

if(*((DWORD*) wfd.cFileName) == 'txeT')
en voila 4 de controlés en 1 cycle.

if(*((WORD*) wfd.cFileName) == '_A')...
voila pour les 2 suivants

Plonge toi dans un bouquin de C et cesse illico MFC et autres surcouches.
Il faut absolument maitriser les notions de base avant d'aller plus loin sinon tu ne pourras jamais rien faire.

ciao...
BruNews, MVP VC++



Cette discussion est classée dans : fichier, date, txt, hfind, wfd


Répondre à ce message

Sujets en rapport avec ce message

Mettre la date dans un nom de fichier [ par IRIS21 ] Bonjour a tousj'ai un petite question a poser : je voudrais savoir comment faire pour "inserer" la date en nom de fichier lors de la création de celui Fichier corbeille [ par akalys ] BonjourJ'aimerais afficher dans une listview les fichiers contenu dans la corbeille.Voici mon code :            HANDLE hfind;        WIN32_FIND_DATA w fichier et tiste simplement chainee en c [ par IMFM ] Salut, j'aimereis avoir une idee svp sur ce point. j'ai besoin de creer un fichier de transaction_date.txt où "date" est la date du jour. les transact deconcatenation de chaine [ par malouve ] Bonjour, j'ai un fichier txt à traiter en C, ayant plusieurs fichiers, j'entre le chemin du fichier au clavier, je voudrais en sortie, avoir un fich boucle fopen [ par vercd7am ] Bonjour, j'aurai aime savoir comment faire un boucle de fopen. Voila pour l'instant ce que j'ai [code=cpp]FILE* fichier = NULL; // nombre de points rechercher un mot dans un fichier txt [ par tanguy704 ] Bonjour Je suis entrain de réaliser un jeu genre scrabble. Les mots valides proposés par les joueurs sont stockés dans un fichier txt un mot par lign Crée un fichier .txt contenant un code source [ par mrcho77 ] Bonjour, Voilà tout, je dois créer un fichier .txt en langage C (jusqu'ici ca va) Dans le fichier .txt il devrai apparaître un code source html ( c' parcourire un fichier txt [ par sizixe ] Bonjour tout le monde, Voila mon problème,j'ai un fichier txt qui contiens des données que l'etulisateur entre au début du programme,mais après il veu Problème [ par kamal25 ] J'ai essayé de écrire dans un fichier je veux qu'il me sorte Date de naissance 24/3/1988 Bonjour Xav57 vous avez 19 ans alors il me sort Date de na Lecture ligne par ligne de fichier txt en C++pour re-jeu de données Temps Reel [ par DamienR83 ] Bonjour, Je souhaite faire une API en C++ avec un affichage de données en "pseudo temps-réel". L'ensemble des mes données sont déjà enregistrées par


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,201 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales