Communauté Informatique NDFR.net

Communauté Informatique NDFR.net (http://www.ndfr.net/forums/index.php)
-   Programmation (C/C++, Delphi, VB, etc.) (http://www.ndfr.net/forums/forumdisplay.php?f=64)
-   -   probleme de compil dans une fonction en c (http://www.ndfr.net/forums/showthread.php?t=4018)

celineee 23-04-2004 12:05

probleme de compil dans une fonction en c
 
j'utilise une fonction pour recuperer un resume dans un fichier selon un numero de film et j'ai des erreurs mais je ne vois pas ou si quelqu'un pouvait m'aider merci d'avance
a priori ca viendrait de mon strcmp mais je vois pas ou il y a une erreur

char* foncrecupres(liste* l,char* Fic,int* NumeroFilm)
{
FILE *FichRes;
Resume *Res;
char *NomFic;
char *resume;

NomFic = (char*)malloc((strlen(Fic)+8)*sizeof(char));
strcpy(NomFic,Fic);

strcat(NomFic,"res.txt");
FichRes=fopen(NomFic,"r");

OuvrirListe(l);
Res=l->Premier;
while (strcmp(Res->NumFilm,NumeroFilm))
{
Res = Res->Suivant;
}
resume=(char*)malloc(sizeof(strlen(Res->TailleRes));
resume=Res->resume;

fclose(FichRes);
return(resume);
}

Fred 23-04-2004 12:11

Re: probleme de compil dans une fonction en c
 
Y a pas à dire, le cpp c'est imbouffable :D

1for-matik 23-04-2004 12:15

Re: probleme de compil dans une fonction en c
 
Quote:

Originally Posted by Fred
Y a pas à dire, le cpp c'est imbouffable :D

Vive le C++ c'est tout ce que j'ai à dire! :D :p

celineee 23-04-2004 12:17

Re: probleme de compil dans une fonction en c
 
Mais encore ?
tu veux pas plutot m'aider a regarder ce qui ne va pas :mad:
en relisant mon post j'ai trouve que ca manquait de commentaire, donc je vais expliquer un peu mieux
pour recuperer mon resume j'ouvre le fichier totores.txt
ensuite grace au numero de film que j'ai recuperer a l'aide d'une autre fonction
je parcours mon fichier resume jusqu'a trouver le bon numero de film et la je chopper mon resume.
la structure de mon resume se compose ainsi
NumFilm ->identifiant du film
TailleRes->taille en caractere de mon resume
resume->mon fameux resume
merci pour ceux qui vont m'aider

Benjy 23-04-2004 12:34

Re: probleme de compil dans une fonction en c
 
Peut-on avoir le listing de la fonction OuvrirListe(), qui à mon avis est la cause réelle de ton problème ?

celineee 23-04-2004 13:13

Re: probleme de compil dans une fonction en c
 
je crois avoir trouve, en faite NumeroFilm et Res->NumFilm sont des int donc forcemment je dois pas utiliser un stcmp!!!!
ma fonction ouvrirliste me met juste au ma premiere structure presente dans ma liste, et elle marche très bien car je l'utilise une dizaine de fois au moins dans mon prog sans qu'elle ne m'ai posé de probleme

celineee 23-04-2004 13:18

Re: probleme de compil dans une fonction en c
 
bah maintenant j'ai un autre probleme il me dit que dans mon if je compare un pointeur avec un int et que ce n'est pas possible... meme en passant par une variable test pourtant dans ma structure Resume ,NumFilm est bien un int...je comprend plus rien...:(

char* foncrecupres(liste* l,char* Fic,int* NumeroFilm)
{
FILE *FichRes;
Resume *Res;
char *NomFic;
char *resume;
int test;
NomFic = (char*)malloc((strlen(Fic)+8)*sizeof(char));
strcpy(NomFic,Fic);
strcat(NomFic,"res.txt");
FichRes=fopen(NomFic,"r");
OuvrirListe(l);
Res=l->Premier;
while (Res!=NULL)
{
Res = Res->Suivant;
test=Res->NumFilm;
if (test==NumeroFilm);
{
resume=(char*)malloc(sizeof(strlen(Res->TailleRes));
resume=Res->resume;
return (resume);
}
}
fclose(FichRes);
return NULL;
}

celineee 23-04-2004 13:30

Re: probleme de compil dans une fonction en c
 
c'est bon j'ai trouve d'ou venait l'erreur merci a tous ceux qui ont essaye d em'aider
l'erreur se trouver dans char* foncrecupres(liste* l,char* Fic,int* NumeroFilm)
j'ai mis un int* au lieu d'un int tout simple :D

Fred 23-04-2004 13:40

Re: probleme de compil dans une fonction en c
 
Bah oui, tout de suite c'est plus cohérent :D

... j'adore cpp, vraiment ...

1for-matik 23-04-2004 13:52

Re: probleme de compil dans une fonction en c
 
Quote:

Originally Posted by Fred
Bah oui, tout de suite c'est plus cohérent :D

... j'adore cpp, vraiment ...

On est deux!
J'adore ton humour Fred :p

Samva 24-04-2004 19:13

Re: probleme de compil dans une fonction en c
 
Mais c'est un langage tout a fait correct le CPP, Barjne a fait les choses correctement....



Python Powered Samva :)

celineee 24-04-2004 22:48

Re: probleme de compil dans une fonction en c
 
alors la nouveau probleme j'utilise un rename et un remove quand je compile sur windows ca marche aps il ne me fait pas le rename et le remove, si je compile sur linux ca me le fait correctemment alors la je ne comprend pas du tout

Samva 24-04-2004 23:23

Re: probleme de compil dans une fonction en c
 
T'utilise un rename et un remove... explicite la :) cherche au niveau des chemin du compilateur et des inclusions par défaut peut etre....

Matt > ca me rappelle une soirée de compilation d'asm :) :D

celineee 25-04-2004 00:42

Re: probleme de compil dans une fonction en c
 
void foncmodifres(char* res,char* Fic,int taille,int NumeroFilm)
{

FILE *FichResSource;
FILE *FichResDest;
char *NomFicSource;
//char test[40];
char *NomFicDest;
char *resume;
int temp;

NomFicSource = (char*)malloc((strlen(Fic)+8)*sizeof(char));
NomFicDest = (char*)malloc((strlen(Fic)+8)*sizeof(char));
strcpy(NomFicSource,Fic);
strcpy(NomFicDest,Fic);
strcat(NomFicSource,"res.txt");
strcat(NomFicDest,"res.tmp");
FichResSource=fopen(NomFicSource,"r+");
FichResDest=fopen(NomFicDest,"w");


while( fscanf(FichResSource,"%d ",&temp)!=EOF)
{
fprintf(FichResDest,"%d ",temp);
if (temp==NumeroFilm)
{
fscanf(FichResSource,"%d ",&temp);
resume = (char*)malloc(sizeof(char)*(temp+1));
fprintf(FichResDest,"%d ",taille);
fread(resume, sizeof(char), (temp+1), FichResSource);
fwrite(res, sizeof(char), (taille), FichResDest);

}
else
{
fscanf(FichResSource,"%d ",&temp);
fprintf(FichResDest,"%d ",temp);
resume = (char*)malloc(sizeof(char)*(temp+1));
fread(resume, sizeof(char), (temp+1), FichResSource);
fwrite(resume, sizeof(char), (temp+1), FichResDest);

}
}

fclose(FichResSource);
remove(NomFicSource);
fclose(FichResDest);
rename(NomFicDest,NomFicSource);
}

Voila le programme alors je vous explique un peu, le but est de recopier dans le fichier destination toutes les informations du fichier source sauf une donnée, le résumé modifier pour cela je le fait grace au numFilm que je recupere avant vu que chaque resume a un numfilm bien distinct.
le programme marche nickel sur linux, de plus le chemin est bon vu que si je fait un remove("text.txt"); et que le fichier text.txt est au meme endroit que le fichier qui a la valeur contenu dans NomFicSource bah le remove se fait bien.
Je me demande aps si c parceque le fichier est utilise et que win ne veux pas me le supprimer et le rename, mais comme je fais bien un fclose avant je ne comprend pas pourquoi ca ne marche pas...
la je desespere un peu....:confused:

Samva 25-04-2004 13:18

Re: probleme de compil dans une fonction en c
 
recupere l'erreur retournée par la fonction remove via errno...

extern int errno;
et apres tu fais un truc du genre
remove(NomFicSource);
if (errno==EACCESS) printf("impossible d'acceder...");
if (errno==ENOENT) printf("Fichier introuvable blablabla");


Deja ca peut t'apporter un debug... :)


All times are GMT +2. The time now is 00:47.

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.