Bonjour !
J'aimerai récupérer le contenu d'un fichier texte et le coller dans un tableau de char afin de pouvoir l'utiliser dans une autre partie du programme.
J'utilise donc la fonction Readfile() mais elle ne lit rien et me renvois une erreur 5 ( Access Denied). Où ai je fait une erreur ?
Voila un peu de code :
- la déclaration de la classe (memoire.h)
#pragma once
class memoire
{
public:
HANDLE file,filemap;
char buffer[50],buffermap[50],reserve[50],reservemap[50];
memoire(void);
void enregistrement(int nbr,char *pcontent,int mode);
void sauvegarde(void);
void readstock(void);
};
- et le fichier memoire.cpp qui va avec :
#include "StdAfx.h"
#include "memoire.h"
#include <io.h>
memoire::memoire(void)
{
if(_access("stock.txt",00) == 0 && _access("map.txt",00)==0)
{
DeleteFile("stock.txt");
DeleteFile("map.txt");
}
this->file = CreateFile("stock.txt",GENERIC_READ | GENERIC_WRITE,0,NULL,CREATE_NEW,FILE_ATTRIBUTE_NORMAL,NULL);
this->filemap = CreateFile("map.txt",GENERIC_READ | GENERIC_WRITE,0,NULL,CREATE_NEW,FILE_ATTRIBUTE_NORMAL,NULL);
strcpy(this->buffer,"");
strcpy(this->buffermap,"");
strcpy(this->reserve,"");
strcpy(this->reservemap,"");
}
void memoire::enregistrement(int nbr,char *pcontent,int mode)
{
char sub[3];
switch (mode)
{
case 0:
itoa(nbr,sub,10);
strcat(this->buffer,sub);
break;
case 1:
strcat(this->buffer,pcontent);
break;
case 2:
itoa(nbr,sub,10);
strcat(this->buffermap,sub);
break;
case 3:
strcat(this->buffermap,pcontent);
break;
}
}
void memoire::sauvegarde(void)
{
DWORD ecris;
WriteFile(this->file,this->buffer,strlen(this->buffer),&ecris ,0);
WriteFile(this->filemap,this->buffermap,strlen(this->buffermap),&ecris ,0);
strcpy(this->buffer,"");
strcpy(this->buffermap,"");
}
void memoire::readstock(void)
{
DWORD taille,lu;
ReadFile(this->file,this->reserve,GetFileSize(this->file,&taille),&lu,0);
}
Merci!