copie contenu d'un fichier dans un tampon

copie contenu d'un fichier dans un tampon - C++ - Programmation

Marsh Posté le 08-03-2005 à 21:50:38    

Bonsoir!
 
En utilisant MFC, je cherche à copier le contenu d'un fichier texte dans un tampon pour traitement ultérieur.
Voici le début du code:
 
   CFile Fichier;
   Fichier.Open("essai.txt", CFile::modeRead); //ouvre en lecture
   int Taille = Fichier.SeekToEnd(); // stocke la taille du fichier dans un entier pour déterminer la taille du tampon.

 
Ensuite, je suis coincé. Qq'un pourait-il me donner le code (tout ou parti) afin que je puisse continuer mon travail ?
 
Merci d'avance!
 
@micalement,
Séb.

Reply

Marsh Posté le 08-03-2005 à 21:50:38   

Reply

Marsh Posté le 08-03-2005 à 21:55:42    

Code :
  1. char buffer[Taille];
  2. UINT nBytesRead = Fichier.Read(buffer, Taille);


t'avais vraiment pas loin à chercher dans la MSDN hein :sarcastic:
http://msdn.microsoft.com/library/ [...] a.read.asp


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 08-03-2005 à 22:08:37    

c'est ce que j'ai fait, mais à la ligne
   char buffer[Taille];
 
le compilateur me met l'erreur C2057: expected constant expression
Donc je pensais que ça n'allais pas... Faut que je vois d'où vient cet erreur.

Reply

Marsh Posté le 08-03-2005 à 22:10:00    

pourquoi j'ai l'impression que tu déclares le buffer avant d'avoir initialisé Taille ? [:petrus75]
poste donc ton code pour voir


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 08-03-2005 à 22:14:26    

CFile Fichier;  
Fichier.Open("essai.txt", CFile::modeRead); //ouvre en lecture  
int taille = Fichier.SeekToEnd(); // stocke la taille du fichier dans un entier pour déterminer la taille du tampon.  
char Tampon[taille]; //tampon où copier le contenu du fichier
UINT nBytesRead = Fichier.Read(Tampon, taille);

Reply

Marsh Posté le 08-03-2005 à 22:15:41    

j'ai pourtt bien déclaré la taille avant le buffer ...

Reply

Marsh Posté le 08-03-2005 à 22:16:22    

Sauf que taille doit être une constante ;)

Reply

Marsh Posté le 08-03-2005 à 22:18:47    

ba comment je peux faire un tampon de la taille du fichier ?

Reply

Marsh Posté le 08-03-2005 à 22:20:05    

Héhé, aller, cherche un peu ;)

Reply

Marsh Posté le 08-03-2005 à 22:24:09    

méeuuu je rame ! :)  
Pi c'est la misère si je met un tampon de 100 par exemple. Ca veut dire qui faut que je le remplisse, je transfert ce qu'il y a dedans, je le vide et rebelotte ! :'(

Reply

Marsh Posté le 08-03-2005 à 22:24:09   

Reply

Marsh Posté le 08-03-2005 à 22:28:24    

boa51 a écrit :

CFile Fichier;  
Fichier.Open("essai.txt", CFile::modeRead); //ouvre en lecture  
int taille = Fichier.SeekToEnd(); // stocke la taille du fichier dans un entier pour déterminer la taille du tampon.  
char Tampon[taille]; //tampon où copier le contenu du fichier
UINT nBytesRead = Fichier.Read(Tampon, taille);


 
ah merde, j'avais pas vu que taille n'était pas une constante [:joce]
ben faut donner une taille fixe à "taille", sinon tu te feras bouler :spamafote:
un truc suffisamment grand pour contenir ton fichier  

Code :
  1. char tampon[10000]; // par exemple


 
edit: ouh putain la fièvre que ça me réussit pas [:mlc]


Message édité par Harkonnen le 08-03-2005 à 22:29:08

---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 08-03-2005 à 22:31:52    

oué à la rigueur...
Pi si je trouve qqch de plus souple a mettre, jvéré par la suite quand ca fonctionnera !

Reply

Marsh Posté le 08-03-2005 à 22:36:32    

Pourquoi pas de suite utiliser une allocation dynamique ?

Reply

Marsh Posté le 08-03-2005 à 22:42:44    

ba pk pas en effet... mais j'fais comment ?
J'ai pas beaucop d'expérience en +.

Reply

Marsh Posté le 08-03-2005 à 22:47:10    

boa51 a écrit :

ba pk pas en effet... mais j'fais comment ?
J'ai pas beaucop d'expérience en +.


Code :
  1. char *tampon = new char[taille];


ne pas oublier de faire un delete une fois que tu n'utilises plus le buffer

Code :
  1. delete[] tampon;


Message édité par Harkonnen le 08-03-2005 à 22:49:53

---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 09-03-2005 à 12:34:37    

Harkonnen merci beaucoup. Je vais essayer dès que j'aurais une minute !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed