FREAD |
Lecture dans le fichier |
---|---|
Langage C | stdio.h |
Syntaxe
int fread(void *tampon,size_t taille,size_t n,FILE *ptrfichier); |
Paramètres
Nom | Description |
---|---|
ptrfichier | Ce paramètre permet d'indiquer l'identificateur de fichier |
tampon | Ce paramètre permet d'indiquer le bloc de données à lire |
n | Ce paramètre permet d'indiquer le nombre de bloc de données |
taille | Ce paramètre permet d'indiquer la taille du bloc de données |
Retour
Valeur | Description |
---|---|
0 | Cette valeur permet d'indiquer qu'il n'y a pas eu de lecture de données ou une erreur s'est produite. |
supérieur à 0 | Ces valeurs permettent d'indiquer le nombre d'octets ayant réellement lu dans le fichier. |
inférieur à 0 | Ces valeurs peuvent être retourner par certains compilateurs, comme dans une situation d'erreur par exemple, mais ils ne font pas partie de la documentation officielle. |
Description
Cette fonction effectue la lecture d'un bloc de mémoire de taille n*taille octets dans un fichier. Ainsi, grâce à cette fonction, il est possible de lire dans un fichier du contenu d'images binaires, des vidéos, des fichiers musicaux, des archives compressés ou de structure de données numérisés (base de registres, tableur, traitement de texte,...).
Remarques
- ATTENTION ! Vous devez vous assurez d'avoir suffisante d'espace disponible de le tampon spécifié pour contenir la quantité de donnée spécifié car sinon vous aurez des problèmes de corruption mémoire et nécessairement des problèmes d'instabilité de votre programme.
- Longueur de lecture : La longueur de lecture réel peut être différente du nombre d'octets demandé. Ainsi, il lira tous les octets possible dans la longueur spécifié mais s'il atteint la limite du fichier, il arrêtera la lecture. Pour s'assurer du nombre réel d'octets lu, vous devriez plutôt vérifier la valeur de retour de cette fonction.
- Emplacement : La lecture commence à l'emplacement actuel du pointeur de fichiers et lorsque la lecture du tampon a été faite, il déplace le pointeur du fichier aux nombres d'octets que vous avez demander de lire, cependant, si la fin du fichier est atteinte, le pointeur se déplacera à la fin du fichier.
- Utilisation : On utilise généralement cette fonction afin de lire des données binaires ou brute ou ayant une taille bien précise. Ainsi, il sera aisé de lire un bloc de données, une structure de données ou une image mais il ne se révèlera pas très pratique pour la lecture d'une chaine de caractères par exemple. De plus, il n'y a pas d'interprétation des données du contenu du tampon lu par cette fonction.
- Optimisation : Lorsque vous avez plusieurs appels se succédant, vous devriez tentez de les regrouper et de charger la structure en un seul appel de cette fonction. Chaque appel à cette fonction est longue, cependant, que vous lisez 1, 2 ou 500 octets en seul passage, le délai est le même. Donc, de ce fait, si vous avez à lire, 4 octets ce succédant mais avec des données différentes, il est préférable de créer une structure avec 4 champs et de lire la structure de 4 champs en un seul appel.
- Vous devez utilisez la fonction «ferror» pour savoir si une erreur de lecture s'est produit.
- Si vous souhaitez lire des images, vous devriez consulter les structures d'images suivantes : .BGX, .BMP, .GEM, .GIF, .IMG, .LBM, .JPEG, .PCX, .PNG, .TGA, .TIFF, ...
- Si vous souhaitez lire des fichiers musicaux, vous devriez consulter les structures sonores suivantes : .669, .AIFF, .AU, .CMF, .MOD, .MP3, .OGG, .S3M, .WAV...
- Si vous souhaitez lire des archives compressés, vous devriez consulter les structures d'archives suivantes : .ARC, .ARJ, .CAB, .GZIP, .PAK, .RAR, .ZIP, .ZOO,...
Exemple
Prenons pour acquis que le fichier «readtext.txt» est le contenu :
gladir.comVoici un exemple montrant une utilisation plus classique de cette fonction :
Essayer maintenant !
on obtiendra le résultat suivant :
1:gla2:dir
3:.co
Voir également
Langage de programmation - C - Référence de procédures et fonctions - fopen
Langage de programmation - C - Référence de procédures et fonctions - fwrite
Langage de programmation - C - Référence de procédures et fonctions - printf
Langage de programmation - C++ - Référence de procédures et fonctions - fread
Références
Langage C, Edition Micro-Application, Gehard Willms, 2001, ISBN: 2-7429-2008-0, page 731.
Borland C++ for Windows 4.0, Library Reference, Edition Borland, 1993, Part # BCP1240WW21772, page 111.