begin process at 2012 05 28 13:07:20
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Fichier / Disque

 > 

Appel au pros du Malloc [erreur etrange]


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

Appel au pros du Malloc [erreur etrange]

vendredi 28 juin 2002 à 12:47:36 | Appel au pros du Malloc [erreur etrange]

Manson

Bonjour,

j'aimerai lister le contenu d'un repertoire dans un tableau de char. Mon pb, c'est que lorsque je le fais, j'ai mon tableau qui ne se rempli pas correctement. Pour le premier fichier, il met le nom du premier fichier dans la premier ligne du tableau, pour le second nom de fichier, il le met sur la 1er et la 2e, et ainsi de suite. Ce qui fait, qu'a la fin, j'ai que le nom du dernier fichier en autant de fois dans le tableau qu'il y a de fichier total.

Voila mon code, j'avais essaye aussi les listes chainees, j'ai eu le meme pb, je pensais que ca venaient de code, mais en fait non, voila le dernier code, c'est une methode pourtant classique et sans complexite, mais ca fonctionne pas. Je vois pas d'ou vient l'erreur. Peut-etre vient-elle du mallocage. J'ai vraiment tout fait d'une methode la plus simple possible pour voir ou est l'erreur, mais rien.

WIN32_FIND_DATA Fichier;
HANDLE Search;

int Get_Number_File_In_Directory()
{
WIN32_FIND_DATA Fich;
HANDLE Seek;
int nbfile=0;

Seek = FindFirstFile("*.*", &Fich);

if (Seek != INVALID_HANDLE_VALUE)
{
nbfile = nbfile + 1;

while (FindNextFile(Seek, &Fich))
{
nbfile = nbfile + 1;
}
}

return nbfile-1;
}

void main()
{
int i, nbfile = 0, Etage = 0;
char **List;

nbfile = Get_Number_File_In_Directory();

List = malloc((nbfile) * sizeof(unsigned char **));

Search = FindFirstFile("*.*", &Fichier);

if (Search != INVALID_HANDLE_VALUE)
{
ListMP3.The_List[Etage] = Fichier.cFileName;

while (FindNextFile(Search, &Fichier))
{
Etage = Etage + 1;
ListMP3.The_List[Etage] = Fichier.cFileName;
}

}

FindClose(Search);

printf("\n");

for (i=0; i<=nbfile; i = i +1)
{
printf("%s\n", ListMP3.The_List[i]);
}

printf("\n");
return;
}

Merci a tous ceux qui vont m'aider.
vendredi 28 juin 2002 à 12:49:01 | Re : Appel au pros du Malloc [erreur etrange]

Manson

Le code n'est pas bon, j'ai laisse mes strutures un peu par tout. Desole, le revoila !

WIN32_FIND_DATA Fichier;
HANDLE Search;

int Get_Number_File_In_Directory()
{
WIN32_FIND_DATA Fich;
HANDLE Seek;
int nbfile=0;

Seek = FindFirstFile("*.*", &Fich);

if (Seek != INVALID_HANDLE_VALUE)
{
nbfile = nbfile + 1;

while (FindNextFile(Seek, &Fich))
{
nbfile = nbfile + 1;
}
}

return nbfile-1;
}

void main()
{
int i, nbfile = 0, Etage = 0;
char **List;

nbfile = Get_Number_File_In_Directory();

List = malloc((nbfile) * sizeof(unsigned char **));

Search = FindFirstFile("*.*", &Fichier);

if (Search != INVALID_HANDLE_VALUE)
{
List[Etage] = Fichier.cFileName;

while (FindNextFile(Search, &Fichier))
{
Etage = Etage + 1;
ListEtage] = Fichier.cFileName;
}

}

FindClose(Search);

printf("\n");

for (i=0; i<=nbfile; i = i +1)
{
printf("%s\n", ListMP3.The_List[i]);
}

printf("\n");
return;
}
vendredi 28 juin 2002 à 14:49:52 | Re : Appel au pros du Malloc [erreur etrange]

Kaid



Essaye de remplacer

Etage = Etage + 1;

par

Etage += strlen(Fichier.cFileName) + 1;

-------------------------------
Réponse au message :
-------------------------------

Le code n'est pas bon, j'ai laisse mes strutures un peu par tout. Desole, le revoila !

WIN32_FIND_DATA Fichier;
HANDLE Search;

int Get_Number_File_In_Directory()
{
WIN32_FIND_DATA Fich;
HANDLE Seek;
int nbfile=0;

Seek = FindFirstFile("*.*", &Fich);

if (Seek != INVALID_HANDLE_VALUE)
{
nbfile = nbfile + 1;

while (FindNextFile(Seek, &Fich))
{
nbfile = nbfile + 1;
}
}

return nbfile-1;
}

void main()
{
int i, nbfile = 0, Etage = 0;
char **List;

nbfile = Get_Number_File_In_Directory();

List = malloc((nbfile) * sizeof(unsigned char **));

Search = FindFirstFile("*.*", &Fichier);

if (Search != INVALID_HANDLE_VALUE)
{
List[Etage] = Fichier.cFileName;

while (FindNextFile(Search, &Fichier))
{
Etage = Etage + 1;
ListEtage] = Fichier.cFileName;
}

}

FindClose(Search);

printf("\n");

for (i=0; i<=nbfile; i = i +1)
{
printf("%s\n", ListMP3.The_List[i]);
}

printf("\n");
return;
}
vendredi 28 juin 2002 à 15:11:49 | Re : Appel au pros du Malloc [erreur etrange]

Manson

Bah ca regle pas mon pb en fait, j'ai pas d'erreur lors de la compilation, ni lors de l'affichage de ce que j'ai stocke dans List[], mais j'ai des erreurs lorsque je veux afficher tout le contenu de List.

Sais tu comment faire pour que je puisse voir le contenu de ce que j'ai enregistrer en ayant fait la modif que tu m'as conseille ?
vendredi 28 juin 2002 à 15:21:30 | Re : Appel au pros du Malloc [erreur etrange]

Kaid


Ah oui, faut peut-être aussi que tu remplaces

List[Etage] = Fichier.cFileName;

par

strcpy(List[Etage], Fichier.cFileName);

Tu peux toujours ce que cela donne avec un debogueur



-------------------------------
Réponse au message :
-------------------------------

Bah ca regle pas mon pb en fait, j'ai pas d'erreur lors de la compilation, ni lors de l'affichage de ce que j'ai stocke dans List[], mais j'ai des erreurs lorsque je veux afficher tout le contenu de List.

Sais tu comment faire pour que je puisse voir le contenu de ce que j'ai enregistrer en ayant fait la modif que tu m'as conseille ?
vendredi 28 juin 2002 à 18:01:58 | Re : Appel au pros du Malloc [erreur etrange]

Manson

Le prog plante lorsque je fais le remplacement que tu m'as dit. Ca m'ernerve de ne pas trouver. J'arrete pas de chercher, de le faire sur papier et je trouve pas l'erreur.
vendredi 28 juin 2002 à 18:25:35 | Re : Appel au pros du Malloc [erreur etrange]

Kaid


J'oubliais .... Tu as alloué de la mémoire pour un tableau de pointeurs char* et pour chaque élément du tableau, il faut ré-allouer de la mémoire pour y copier la chaine.

Exemple:

char **tabStr;
tabStr=new char *[10];
tabStr[0]=new char [X];



-------------------------------
Réponse au message :
-------------------------------

Le prog plante lorsque je fais le remplacement que tu m'as dit. Ca m'ernerve de ne pas trouver. J'arrete pas de chercher, de le faire sur papier et je trouve pas l'erreur.
vendredi 28 juin 2002 à 18:34:04 | Re : Appel au pros du Malloc [erreur etrange]

Manson

Je met ca apres mon malloc, et juste avant que je fasse le strcpy ?
vendredi 28 juin 2002 à 18:39:47 | Re : Appel au pros du Malloc [erreur etrange]

Manson

Le new ne passe pas, le compilateur me dit qu'il ne le reconnait pas. En plus jamais utilise moi new. Faut une lib special ?
vendredi 28 juin 2002 à 18:44:04 | Re : Appel au pros du Malloc [erreur etrange]

Manson

ok, c'est bon je viens de comprendre, et maintenant ca tourne impec, j'avais pas effectivement etabli les ligne du tab. maintenant je fais ca :

Grand merci Kaid, c'est super simpa !

List = malloc((nbfile) * sizeof(unsigned char **));

Search = FindFirstFile("*.*", &Fichier);

if (Search != INVALID_HANDLE_VALUE)
{
List[Etage] = malloc(strlen(Fichier.cFileName) * sizeof (char *));
strcpy(List[Etage], Fichier.cFileName);

while (FindNextFile(Search, &Fichier))
{
Etage = Etage + 1;
List[Etage] = malloc(strlen(Fichier.cFileName) * sizeof (char *));
strcpy(List[Etage], Fichier.cFileName);
}

}

FindClose(Search);

printf("\n");

for (i=nbfile; i>=0; i--)
{
printf("%s\n", List[i]);
}

1 2

Cette discussion est classée dans : fichier, list, search, etage, nbfile


Répondre à ce message

Sujets en rapport avec ce message

List de repertoire et de fichier [ par WaFFel ] bien c'est bien simple mais pour moi c'est tres complex.je cherche a faire un programbe pour la gestion de mes fichier mais jai un petit problem.je vo recup chemin d'acces dossier [ par pqlhdjdcllsl ] Salut a tous,j'aimerais savoir comment recuperer le chemin d'acces a un fichier ,mais juste le dossier ou il est placerj'ai déja utiliser des commande Search & Destroy [ par spacegate ] Bonjour!J'ai un fichier qui contient du texte.Je voudrais rechercher dans ce texte les passages tels que : [img...].....[/img] et les détruire, puis s Remplisage List Box a partir fichier [ par pidoumtimo ] Bonjour.Dans mon programme je lis un fichier et je souhaite ensuite remplir une List Box avec les donnée contenues dans ce fichier.Il s'agit d'une sui lire des valeur dans un fichier texte et les inserer dans une list box [ par pidoumtimo ] Bonjour.Je pense que le sujet decrit mon probleme.Au final la list box est vide.voila le bout de code ki me permet de lire et d'afficher.GetDlgI comment cacher un fichier [ par jeromedu94 ] Salut, tout est dans le titre, je voudrais donc savoir comment cacher un fichier en C.Merci d'avance diske dur et fichier [ par louatiamin ] je veut concevoir mon premier systeme d'exploitation mais les graphique sont preske realisé j'ai voulu attker au fichierdonc pour créer le systeme sur GetCurrentDirectory incorrect en Mode console [ par 3psilon ] Bonjour,J'ai une question toute bête certainement.Dans mon application, j'utilise GetCurrentDirectory pour créer un fichier ini.Mais, voila, si je pla Supprimmer un bloc dans un fichier crée en langage C [ par dony ] Bonjout @ tous!!Je boss sous Visual C , voila mon probleme:Aprés avoir crée un fichier qui contient des structures,j'aimerai utiliser une fonction ( j Tracer un process, ou une I/O [ par Clovis ] Est-il possible de surveiller un fichier, c'est-à-dire de voir quel process lit dedans, ou de suivre un process pour savoir si il lit dans un fichier?


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

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