begin process at 2012 05 30 05:56:07
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Général

 > 

prog. FindFirstFile plante


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

prog. FindFirstFile plante

lundi 14 mars 2011 à 21:17:09 | prog. FindFirstFile plante

jejefull1234

Bonjour,
J'ai réaliser un programme qui affiche la date de création d'un fichier .txt
Le problème c'est que mon code fonctionne en debug mais plante en exécution console.

Code C# :
int main(int argc, char *argv[])
{
    HANDLE Fct1;
    WIN32_FIND_DATA(x);
    LPCTSTR Dossier = "C:\\Users\\...\\history\\essai\\*.*";
    char* i;

    Fct1 = FindFirstFile(Dossier, &x);

    if(Fct1 == INVALID_HANDLE_VALUE)
    {
        printf("Erreur de listing");
    }
    else
    {
            printf("*** Affichage date fichier txt *** : \n\n");

        do
        {
             char repert[100]="C:\\Users\\...\\history\\essai\\";

             i = strstr(x.cFileName,".txt");    // cherche les fichiers .txt

             if( i != NULL)                     // Si ce sont des fichier texte faire ...
             {
                    strcat(repert,x.cFileName);            // chemin + nom de  fichier


                   DateFile(repert);     // Fonction qui récupère et affiche la date de création

             }


        }while(FindNextFile(Fct1,&x));

         CloseHandle(Fct1);

    }

        return 0;
}


Fonction DateFile:
Code C# :
char* DateFile(char* nomDossier)
{
     FILETIME ft;
     SYSTEMTIME st;
     HANDLE hFile;
     char* date = (char*) malloc(sizeof(int) );

      if((hFile = CreateFile(nomDossier, GENERIC_READ, FILE_SHARE_READ, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0)) != INVALID_HANDLE_VALUE)
      {

                GetFileTime(hFile, &ft, 0, 0);
                FileTimeToLocalFileTime(&ft, &ft);
                FileTimeToSystemTime(&ft, &st);

                sprintf(date, "%02d/%02d/%d",st.wDay, st.wMonth, st.wYear);
                printf ("Date : %s\n", date);


                CloseHandle(hFile);
      }

      else
            printf("Erreur: 0x%08lX !\n", GetLastError());

     return date;
}



Le plantage a lieu a l affichage de la troisième date, pour 2 ca fonctionne sans planter. 3 sa plante en retournant -1073741819
Avais vous une idée ?

lundi 14 mars 2011 à 22:24:36 | Re : prog. FindFirstFile plante

BruNews

Administrateur CodeS-SourceS
Réponse acceptée !
Je ne teste pas mais devrait aller.

Code C/C++ :
char Dossier[] = "C:\\Users\\...\\history\\essai\\*.*";

int main(int argc, char *argv[])
{
  HANDLE Fct1;
  WIN32_FIND_DATA wfd;
  char buf[2048];
  char *c, *d, *p;
  FILETIME ft;
  SYSTEMTIME st;
  Fct1 = FindFirstFile(Dossier, &wfd);

  if(Fct1 == INVALID_HANDLE_VALUE) {
    printf("Erreur de listing");
    return 0;
  }
  
  printf("*** Affichage date fichier txt *** : \n\n");
  c = Dossier;
  d = buf;
  while(*d = *c) {c++; d++;} // d EST POINTEUR DE CHAINAGE

  do {
    // i = strstr(x.cFileName,".txt");    // cherche les fichiers .txt
    // NON, c'est au cul du nom qu'on verifie et SEULEMENT au cul.
    c = x.cFileName;
    p = d; // ON CHAINE DIRECT, AINSI ON AURA LE PTR FINAL POUR VERIF DE ".txt"
    while(*p = *c) {c++; p++;}
    // CreateFile() et GetFileTime() INUTILES
    if(*((DWORD*) (p - 4)) == 0x7478742E) { // '.txt' ou 0x7478742E, c'est idem.
      FileTimeToLocalFileTime(&wfd.ftCreationTime, &ft);
      FileTimeToSystemTime(&ft, &st);
      // TES  printf D'AFFICHAGE ICI
    }
    
  } while(FindNextFile(Fct1, &wfd));
  FindClose(Fct1); // NIET CloseHandle()
  return 0;
}

ciao...
BruNews, MVP VC++
mardi 15 mars 2011 à 15:38:39 | Re : prog. FindFirstFile plante

jejefull1234

Merci de ton aide ton programme fonctionne nikel. je vais pouvoir continuer mon prog.
Merci





Cette discussion est classée dans : date, code, char, ft, fct1


Répondre à ce message

Sujets en rapport avec ce message

Autre question sur les pointeurs [ par Darkneon ] Salut,J'ai le code suivant.#include char strA[27] = "abcdefghijklmnopqrstuvwxyz";int main(void){ char *pA; conversion char-->hexadécimal [ par ivdz ] Bonjour,Est-ce que quelqu'un sait convertir un char en sa valeur hexadécimal ?Voici ce que j'ai essayé :char mot[]="255";int hexa;sscanf(mot Char et caractère NULL [ par Arecibo ] Lorsque je déclare : char Texte[16];est ce que je déclare :- une variable de type char de 16 caractères PLUS le caractère NULLou- une vari "désallocation" inopinée [ par vecchio56 ] J'ai touvé un truc bizarre avec Visual C++ 6: le code suivant plante:#include void f(char* a){ a = new char[100]; // alloue de la Question de noob avec char :D [ par Bricomix ] Salut à tous,Voilà, je suis noob en C++, j'ai lu un book et j'ai tappé le code suivant :#include using namespace std;int main() Erreurs de compilations bizarres avec Visual C++ 6 [ par VTS_35 ] Bonjour,G encore des problèmes de compilation avec mon programme. Je me suis rendu compte que le programme allait devenir balaise, alors j'ai décidé d fonction qui retourne un char [ par glipper ] Bonjour,Voila, j'ai un probleme avec une fonction qui doit retourner une chaine de caractere ! J'ai compris qu'elle ne pouvait pas renvoyer la chaine, Liberation de la mémoire [ par Xentor609 ] Salut,Voici le code qui me pose un pitit probleme:char* fonction(){char* buf=new char[MAX_BUF];//traitement du bufreturn buf;}void MyFunc()< Pb de variable (enfin je croi) [ par Xilofeon ] Regardé ce code :#define PIDVALIDE "6.0.2800.1106"...<b assembleur dans du code c [ par guillaume80 ] bjour a tous,dans un code c récupéré, j'ai pris le code pr le compiler sauf qu'il y a eu des soucis, il m'en reste un, c'est le suivant :char *ecran =


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

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,825 sec (3)

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