Lire un fichier en C dont je ne connait pas l'extension
benrad
Messages postés4Date d'inscriptionmardi 10 octobre 2006StatutMembreDernière intervention16 octobre 2007
-
15 oct. 2007 à 15:10
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 2014
-
18 oct. 2007 à 20:39
Bonjour
j'ai un fichier avec une extension .dld
je suis en train de bosser sur une dll en C
J'aurais voulu savoir comment je pouvais stocker le contenu du fichier .dld dans un char* .
j'effectue un fread mais je ne recupere que les 8 premiere caracteres et ensuite plus rien. Il y a un Nul apres c 8 premiere caracter dans le fichier si je le lis dans notepad.
comment faire pour recuperer l'integralité du fichier?
le contenu du fichier qui devrait etre dans un char* va etre ensuite encodé en base64
merci
A voir également:
Lire un fichier en C dont je ne connait pas l'extension
benrad
Messages postés4Date d'inscriptionmardi 10 octobre 2006StatutMembreDernière intervention16 octobre 2007 15 oct. 2007 à 17:53
Hello DeathCrash
pas mieux avec la boucle
sur le while(!feof(*fp))
vs m'a gueulé dessus en me disant mpossible de convertir File en File*
du coup j'ai essayé avec : while(!feof(fp))
en debug ca fait 2 tour dans la boucle et en fait je recupere toujours la meme chaine.
je vais continuer mes recherches, merci pour l'aide
benrad
Messages postés4Date d'inscriptionmardi 10 octobre 2006StatutMembreDernière intervention16 octobre 2007 16 oct. 2007 à 09:45
En fait je fais ça avec byte *buf ou char *buf
fp=fopen(
"fichier a lire"
,
"rb"
);fseek(fp,0,SEEK_END);
//go to end
//get position at end (length)
len=ftell(fp);
//go to beg.
fseek(fp,0,SEEK_SET);
//malloc buffer
buf=(byte *)malloc(len);
//read into buffer
fread(buf,len,1,fp);
fclose(fp);
free(buf);
Je recupere bien tous les caracteres de mon fichier dans le buffer, mais dans le buffer je recupere aussi tous les retours a la ligne et ca j'en voudrais pas il faudrait en fait que le contenu de mon fichier ne soit qu'un "mot" (tous les caracteres s'enchainent en fait)
Merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
luhtor
Messages postés2023Date d'inscriptionmardi 24 septembre 2002StatutMembreDernière intervention28 juillet 20086 16 oct. 2007 à 13:31
Les retours a la ligne ne sont que des caractères spéciaux. Ton buffer contient tous les caractères. Tu peux pas faire autrement. Il te faut enlever manuellement les sauts de ligne si tu n'en veut pas, ainsi que les tabulations etc ...
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 201413 18 oct. 2007 à 20:38
Salut,
Pour supprimer les caractères un fois le buffer lu, tu peux t'inspirer
du dernier code de cette page en remplaçant le while par un for( i = 0
; i < len ; i++)
Par contre, à la place de mettre un caractère null à la fin, il
va falloire que tu sauvegardes le dernier id_write quelque part...
<hr size="2" width="100%" />3ème année en ecole d'ingé d'info cherche stage de 4 mois à partir du 01/04/08