begin process at 2012 05 29 15:23:55
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Divers

 > 

pb avec la fonction fread et la concatenation de fichiers bmp


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

pb avec la fonction fread et la concatenation de fichiers bmp

jeudi 8 avril 2004 à 13:41:53 | pb avec la fonction fread et la concatenation de fichiers bmp

Cako19


Bonjour,

j'ai un pb avec la fonction fread avec le code suivant:

tailleFichier = (donneesFichier.nFileSizeHigh)*MAXDWORD+(donneesFichier.nFileSizeLow); // taille du fichier bmp à lire récupérée suite à l'utilisation de la fonction FindFirstFile ou FindNextFile.

data = (BYTE*)malloc( sizeof(tailleFichier) );

// Lecture des données du fichier
lg = fread( &data, sizeof(BYTE*), tailleFichier, fichierEntree );
if ( ferror( fichierEntree ) != 0 )
{
printf( "une erreur est survenue dans la lecture du fichier\n" );
exit( 0 );
}

Cela me retourne à chaque fois que "une erreur est survenue dans la lecture du fichier" et je ne comprends pas pourquoi. Y a t il une taille limite de lecture d'octets à la fois pour les stocker dans le buffer ?

En fait, c'est pour réaliser la concaténation des données contenues dans plusieurs bmp.
Pour chaque fichier bmp contenu dans un répertoire donné, je lis le fichier en entier, je stocke les données dans un buffer et j'ecris le contenu du buffer dans un fichier. Je concatene ainsi les données de chaque fichier.

Quand je demande à la fonction de lire les données du fichier 32 par 32, la fonction marche mais le fichier résultat ne contient pas exactement les données du fichier.

Comment puis je faire ?

Merci d'avance pour votre aide.

Cako19

jeudi 8 avril 2004 à 14:17:35 | Re : pb avec la fonction fread et la concatenation de fichiers bmp

Cako19

Même si je prends les octets du fichier 1 par 1, j'ai l'impression que ça n'écrit pas les bonnes données sur le fichier résultat
jeudi 8 avril 2004 à 16:19:33 | Re : pb avec la fonction fread et la concatenation de fichiers bmp

ymca2003


lorsque tu fais :
lg = fread( &data, sizeof(BYTE*), tailleFichier, fichierEntree );

tu lit "tailleFichier" élément de taille "sizeof(BYTE*)" à savoir 4 (la taille d'un pinteur).
tu essaye donc de lire 4 fois la taille du fichier.
Ensuite, le premier pramètre est l'adresse du premier octet du buffer où mettre les données lues. Il faut donc passer data et non pas &data.

l'appel à faire est donc :
lg = fread(data, sizeof(BYTE), tailleFichier, fichierEntree );

l'allocation mémoire du buffer n'est pas bonne non plus car sizeof(tailleFichier) va te donner la taille de la variable contenant la taille du fichier à savoir 4 octets pour les entiers 32 bits.

pour alouer le buffer, il faut simplement faire:
BYTE* data = (BYTE*)malloc(tailleFichier);

en ce qui concerne la taille du fichier, c'est pas la peine de prendre les 32 bits de poids fort qui sont nuls sauf pour les fichier > 4GO. Et dans ce cas, tu pourra lire le fichier en entier dans la mémoire.


Cette discussion est classée dans : fichier, fonction, données, bmp, fread


Répondre à ce message

Sujets en rapport avec ce message

Acceder à un disque sans systeme de fichier [ par Quemar ] Bonjour à tous,j'ai un problème peu banal pour lequel je ne trouve aucune information, je m'explique:J'aimerai savoir si il existe (c'est obligé que c fonction fread lit bizarrement un fichier texte [ par bilel59 ] Bonjour à tous, voici mon problème : j'écris dans le fichier vect3.txt 3 floats grâce à la fonction fwrite, cela se passe bien cependant, lorsque je v Lecture ligne par ligne de fichier txt en C++pour re-jeu de données Temps Reel [ par DamienR83 ] Bonjour, Je souhaite faire une API en C++ avec un affichage de données en "pseudo temps-réel". L'ensemble des mes données sont déjà enregistrées par probléme parser fichier [ par randouda2008 ] bonjour j'ai un fichier.mat contenant une matrice carrée je veux faire un programme qui lit ce fichier et remplit une autre matrice à partir de donnée fonction avec un type file* [ par vercd7am ] Bonjour, j'ai ecrit quelques lignes de code pour pouvoir lire un fichier txt. [code=cpp]int main() { int c; FILE *fichier = NULL; fichi lecture logique d'un fichier txt en C [ par samissam ] Comment puisse je faire le traitement des données d'un fichier en langage C? Mes données sont dans un fichier txt et qui représentent un Arbre de d Créer un fichier dans le server avec les données [ par ptlanderson ] Bonjour Je suis entrain de faire un projet avec winsock... J'ai besoin de créer un fichier (.txt) en mettant des données dans ce fichier. J'ai réu Listage des fichiers d'une directory [ par ArthurAuguste ] Bonjour, Question probablement très simple pour qui l'a déjà fait. J'essaie de savoir quels sont tous les fichiers qui se trouvent sous une directory Steganographie, bitmap et offset [ par Heisen ] Bonjour à tous, désirant coder mon propre logiciel de stéganographie, avec lequel il serait possible de cacher un message dans une image (méthode Lea


Nos sponsors


Sondage...

Comparez les prix

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,796 sec (4)

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