begin process at 2012 05 30 11:13:27
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Débutant(e)

 > 

Readfile et access denied


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Readfile et access denied

dimanche 3 janvier 2010 à 15:09:17 | Readfile et access denied

sran_isback

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!
dimanche 3 janvier 2010 à 16:49:11 | Re : Readfile et access denied

BruNews

Administrateur CodeS-SourceS
Si on code API, _access() et autres trucs du CRT sont à exclure.
if(0 > (long) GetFileAttributes(szfile)) ABSENT
A noter que dans ton cas ne me semble pas utile, CreateFile dira ce qu'il en est.

Il faut vérifier CHAQUE retour des fonctions API.
hfl = CreateFile(szfl, GENERIC_READ | GENERIC_QWRITE, 0, 0, OPEN_ALWAYS, 0, 0);
if(hfl == INVALID_HANDLE_VALUE) CasAtraiter !!!

idem pour GetFileSize(), consulter GetLastError().
ReadFile() seulement si taille > 0.
Sans compter que si taille > sizeof(reserve) alors badaboum ton prog.

Avec nom de fichier sans chemin, fauty assurer la currentDirectory au lancement du prog.
etc, etc.

ciao...
BruNews, MVP VC++


Cette discussion est classée dans : buffer, file, void, memoire, buffermap


Répondre à ce message

Sujets en rapport avec ce message

Mettre un fichier .exe dans un buffer [ par guiguikun ] Je n'arrive pas a mettre un fichier executable en memoire.sur les 100Ko du fichier, mon buffer ne compte que les 3 premiers octets (caracteres)voici m allegro data file [ par mat74 ] salut a tssa fait un ptit momment que j'essaie d'utiliser les datafile mais sa ne marche pasje creer le data file avec grabber.exeensuite j'enregistre envoi fichier via socket [ par elanspeech ] Bonjour,J'ai fait un client/serveur, la communication se passe bien. cependant, je ne parviens pas a envoyer plusieurs fichiers a la suite avec la soc RS232 [ par th62d ] Bonjour,J'essaie de faire communiquer mon pc via le port serie RS232.....Quand je lance le programme TestCOM.c j'ai l'erreur suivante à la compilation Avis des PROS! [ par UnExPeCtEdSpy ] Bonjour,je suis plus familier du vb que du c++ alors j'vous d'mande de l'aide :J'utilise une Dll en c+ avec un prog en Vb qui manipule des fichiers.Qu ecrire dans un fichier [ par bellionl ] salut,voila depuis une semaine je tente de conprendre le c++ avec borland c++ builderle problème est quand je veut écrire dans un fichier.création du vreation video a partir d'addresse memoire de buffer image [ par rasta_raf ] Bonjour,-Je voudrais savoir s?il y a un programme, une application ou autre pouvant, à partir de l?adresse d?une mémoire buffer d?une image (cette ima Commande >>> Buffer [ par Stormy ] Salut à tous,Je cherche une solution afin de charger dans un Tampon une suite de commande ASM ou l'ensemble d'un code appartenant à une fonction C (co Code source incomplet en C [ par Sneakito ] Je suis un débutant, or j'ai un programme assez complexe à réaliser(pour moi), voici ce qu'il doit faire:Remplacer un mot dans une page html (hors bal caracteres chelous avec ReadFile() ???? [ par SnOOpss ] Salut j'ai un probleme tout con avec Readfile()                 HANDLE hdl;                 hdl=CreateFile(data3,GENERIC_RE


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,296 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales