Comment lire ou écrire à un fichier dans la mémoire ?

Signaler
Messages postés
32
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
2 juin 2006
-
Messages postés
495
Date d'inscription
dimanche 6 juillet 2003
Statut
Membre
Dernière intervention
9 novembre 2007
-
bonjour,
je sais ouvrir un fichier dans la mémoire..
mais comment le lire à partir de cette même mémoire ?

merci pour votre aide ...

-------------
j'utilise c++, visual net c++

4 réponses

Messages postés
32
Date d'inscription
vendredi 7 février 2003
Statut
Membre
Dernière intervention
17 janvier 2005

j' ai du mal comprendre mais regarde msdn à fgets, fscanf ou read !!!! sinon desolé si j ai mal compris !!!!
Messages postés
32
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
2 juin 2006

je me corrige :

en fait on peut :
-soit ecrire/lire sur le disque dur
-soit ecrire/lire dans le buffer mémoire

mon probleme c'est comment désigner l'endroit où se trouve le ficher : disque dur ou mémoire

pour le disuqe dur j'ai aucun problème, mais pour la mémoire ?

ex : comment créer mimi.txt dans la mémoire et comment le lire dans cette même mémoire sans passer par le disque dur ?
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
un fichier texte dans la memoire c'est une chaine de caractere (char *) !
Messages postés
495
Date d'inscription
dimanche 6 juillet 2003
Statut
Membre
Dernière intervention
9 novembre 2007
1
sinon tu peux jeter un coup d'oeil a mmap, mais je te conseil plutot :

int size;
char *mem_file;
FILE *fd;

fd = fopen(ton_fichier, "wb");
if (fd == NULL)
return (0);
fseek(fd, 0, SEEK_END); // place le pointeur fichier a la fin
size = ftell(fd); // obtenir la position du pointeur, donc la taille du fichier puisquil est a la fin
fseek(fd, 0, SEEK_SET); // remettre le pointeur fichier au debut

mem_file = malloc(size);
if (mem_file == NULL)
return (0);

fread(mem_file, 1, size, fd); // lit le fichier et le place dans ton buffer mem_file;

tu n'as plus qu'a parcourir mem_file et c'est regler