programmation C lecture ou stockage de fichier ? - Programmation
Marsh Posté le 26-03-2001 à 00:00:31
Ben je sais pas, tu peux le lire par morceaux par exemple.
Marsh Posté le 26-03-2001 à 08:01:53
Au lieu de faire un malloc de la taille de ton fichier de configuration, tu te crées un buffer à taille fixe que tu utilises pour lire le fichier en plusieurs fois si nécessaire.
=> par exemple:
char *buffer = (char*) malloc(1024);
fread (FILE, buffer, 1024);
Marsh Posté le 26-03-2001 à 10:23:09
Ben oui c'est comme ca qu'on fait d'habitude.
Tu lis ton fichier par bloc de 1024 octets.
Ensuite tu recuperes les lignes les unes a la suite des autres depuis ce buffer avec l'aide d'un pointeur tout con.
Des que ton pointeur arrive a la fin du bloc tu demandes de lire a nouveau 1024 octets.
tu as donc 2 buffers :
- un de 1024 octets pour lire le fichier.
- un de la taille que tu veux pour stocker la ligne courante.
Marsh Posté le 26-03-2001 à 10:51:51
tu peux commencer par déterminer la taille du fichier
(en te placant à la fin et faisant un ftell), comme ca tu pourras
règler la taille de ton malloc.
de plus, t'es pas obligé d'utiliser un malloc pour lire
le contenu du fichier.
tu définis un buffer (char *) suffisament grand pour contenir n'importe quelle ligne du fichier et tu le lits ligne
par ligne avec un fgets
Marsh Posté le 25-03-2001 à 22:29:37
voila j ai une application ki lit un fichier de conf .
je programme cette application en C.
le seul pb c est ke des fois ce fichiers de confs ont des tailles foireuses... et du coup font exploser mon malloc...
je voulais savoir kelles sont les autres solutions possibles ?
actuellement je stocke mon fichier dans un char *
voila voila vos idees sont les bienvenues
sous Linux/Unix