Erreur de débutant - Debug Assertion Failed!

Résolu
PsyCaDi Messages postés 123 Date d'inscription jeudi 14 novembre 2002 Statut Membre Dernière intervention 30 mars 2009 - 2 oct. 2004 à 14:59
cs_Matt67 Messages postés 549 Date d'inscription samedi 6 septembre 2003 Statut Membre Dernière intervention 6 mars 2010 - 2 oct. 2004 à 20:48
Bonjour,
Aujourd'hui, j'ai un gros pb, j'ai un petit programme qui me liste le contenu de mes répertoire dans des fichiers texte

Voici le code: (désolé d'avoir tout mis mais je sais pas d'où vient l'erreur)
-------------------------------------------
#include <windows.h>
#include "string.h"
#include
#include <fstream>

using namespace std;

class c_Param {
public:
char str_Repertoire[200];
char str_FichierLog[200];
};

void ListeFichier(c_Param p_Parametre)
{
int i_folder, i_file; //variable compteur dossiers et fichiers
WIN32_FIND_DATA File;
HANDLE liste;

ofstream Fichier(p_Parametre.str_FichierLog);
i_folder i_file 0;

Fichier << p_Parametre.str_FichierLog << " trace le contenu de " << p_Parametre.str_Repertoire << endl;

liste = FindFirstFile(p_Parametre.str_Repertoire,&File);

do
{
if(File.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
if (File.cFileName != "." && File.cFileName != "..")
{
Fichier << "<REP> " << File.cFileName << endl;
++i_folder;
}
}
else
{
Fichier << " "<< File.cFileName << " -> " << File.nFileSizeLow << " octects" << endl;
++i_file;
}
} while((FindNextFile(liste, &File)));

FindClose(liste);
Fichier << "Il y a " << i_folder << " dossiers et " << i_file << " fichiers." << endl;
Fichier.close();
cout << p_Parametre.str_FichierLog << " trace le contenu de " << p_Parametre.str_Repertoire << endl;
}

int main()
{
c_Param p_Parametre;
int i_ligne=1;
int i_nbligne=0;
char str_temp[100];
char c[2];
do
{
itoa(ligne,c,10);
GetPrivateProfileString("repertoire",c,"",str_temp,sizeof(str_temp),"C:\\Documents\\Mes Programmes\\Liste fichier\\liste.ini");
++i_nbligne;
++i_ligne;
}while (strlen(str_temp) > 0);

--i_nbligne;
i_ligne = 1;

while (1)
{
for(i_ligne;i_nbligne;ligne++)
{
itoa(i_ligne,c,10);
GetPrivateProfileString("repertoire",c,"",p_Parametre.str_Repertoire,sizeof(p_Parametre.str_Repertoire),"C:\\Documents\\Mes Programmes\\Liste fichier\\liste.ini");
GetPrivateProfileString("fichier",c,"",p_Parametre.str_FichierLog,sizeof(p_Parametre.str_FichierLog),"C:\\Documents\\Mes Programmes\\Liste fichier\\liste.ini");
ListeFichier(p_Parametre);
Sleep(5000);
}
}
return 0;
}
----------------------------------
Fin du code

Bon alors l'erreur est la suivant
Le premier fichier se génère, le second aussi et ensuite j'ai ça :
Microsoft Visual C++ Debug Library
Debug Assertion Failed!
Program: c:\ListeFichier.exe
file: fopen.c
line: 54
expression: *file != _T('\0')
For information on how your program can cause an assertion failure, see the Visual C++ documentation on asserts.
Avec les boutons Abandonner - Réessayer et Ignorer

Et j'avoue que je pige que dalle à ce message.

Voilà le fichier ini si besoin
[repertoire]
1=c:\*.*
2=d:\*.*
[fichier]
1=c:\liste.txt
2=d:\liste.txt

Alors, je pense que je fais une erreur de type mais où?

Aidez moi pliz car je suis paumé là et en plus noob :'(

PsyCaDi

Sorry pour la taille du post

3 réponses

vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
2 oct. 2004 à 17:36
Je ne te cache pas que ton style est très mauvais. Pourquoi utiliser la STL alors que ton code est clairement destiné à Windows?
Pour voir d'ou vient ton erreur, execute en debug (F5) et le programma s'arrêtera sur l'erreur.
3
PsyCaDi Messages postés 123 Date d'inscription jeudi 14 novembre 2002 Statut Membre Dernière intervention 30 mars 2009
2 oct. 2004 à 18:24
ok
mais F5 m'envoi dans un fichier fopen.c
je vais chercher merci
PsyCaDi
0
cs_Matt67 Messages postés 549 Date d'inscription samedi 6 septembre 2003 Statut Membre Dernière intervention 6 mars 2010 3
2 oct. 2004 à 20:48
Bonsoir

Ton code ne compile pas car dans main il y a une variable ligne qui n'est pas déclaré. Je suppose que c'est i_ligne ...

Dans ta derniere boucle for, il semble que tu ne sorts jamais de la boucle. Essaye de revoir ca !!!

Matt...
0
Rejoignez-nous