écriture dans un fichier binaire

Résolu
elementalord Messages postés 26 Date d'inscription mercredi 25 mai 2005 Statut Membre Dernière intervention 10 juin 2005 - 31 mai 2005 à 11:52
elementalord Messages postés 26 Date d'inscription mercredi 25 mai 2005 Statut Membre Dernière intervention 10 juin 2005 - 1 juin 2005 à 09:08
salut à tous!! je voudrais savoir comment ecrire dans un fichier binaire, j'ai atendu dire que celà me permetrait aussi d'avoir une taille de fichier plus léger par rapport à un fichier texte.Quelqu'un pourait m'aider s'il vous plait?mici beaucoup.

6 réponses

cs_Kenavo Messages postés 702 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 1 octobre 2009 5
31 mai 2005 à 19:41
Tout à fait, Elementalord !



Tu obtiens un fichier typé qui offre les possibilités suivantes



connaitre le nombre d'enregistrements :

FileSise(recFich);


Lire directement un enregistrememt :

Seek(recFile,n);

data := read(f);



Si tu veux gagner encore plus de place, tu peux utiliser un Packed Record , cette notation interdit l'alignement des données : un octet n'occupe qu'un octet et non pas, comme en cas d'alignement, 2, 4 voire 8 octets !

Ton fichier sera alors compatible avec toutes les versions de ton
programme que tu pourrais compiler avec - par exemple - Delphi 4
(alignement sur 2 octets), ou Delphi 7 (alignement sur 8
octets par défaut !)



L'inconvénient peut être un léger ralentissement du programme gérant des données non alignées.



Les fonctions BlockRead et BlockWrite peuvent être utilisées avec tous
types de fichiers : les données sont écrites ou lues à partir d'un
buffer de ... n'importe quoi (byte, char, word, ect...). Il
vaut mieux savoir ce qu'on manipule !...



Ken@vo
<hr size ="2" width="100%">Code, Code, Codec !




http://www.pourflorenceethussein.org/

[%3C/body ]
3
jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 13
31 mai 2005 à 20:29
kenavo je suis d'accord avec toi pour ce qui concerne les lichiers non
typés . Mais les instructions blockwrite et blockread permettent de
lire et d'enregistrer des donnees de longueur variable. C'est une façon
simple de gerer des donnees contenant des datas et des champs de type
"memo" du genre que l'on trouve pour des fiches produits .

j.len.
3
jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 13
31 mai 2005 à 14:09
salut,

pour ecrire sous forme binaire il te faudra suivre des procedures suivantes:

soit declarer un fichier typé et utiliser la procedure write;

soit ouvrir le fichier avec rewrite(file,taille_de _l'enregistrement) avec aille_de _l'enregistrement:=1 et utiliser la procedure blockwrite(file,variable,sizeof(variable));

pour lire un tel fichier tu utilise les procedure reset et blockread avec les mêmes parametres.

bonne prog;
0
cs_Kenavo Messages postés 702 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 1 octobre 2009 5
31 mai 2005 à 16:35
Un fichier binaire, c'est plus court qu'un fichier texte surtout si tu enregistres autre chose de du texte !



Tu peux aussi, si tu n'as qu'un type de données à enregitrer, utiliser
les fichiers typés : un fichier de réels pour enregistrer des réels, un
fichier de TPoint pour enregistrer des points , etc...



Ken@vo

<hr size="2" width="100%">Code, Code, Codec !




http://www.pourflorenceethussein.org/

[%3C/body ]
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
elementalord Messages postés 26 Date d'inscription mercredi 25 mai 2005 Statut Membre Dernière intervention 10 juin 2005 1
31 mai 2005 à 17:37
ok merci,
est ce que c'est bon si j'ecris celà:
Type
TrecData = Record
Datteheur : TDateTime;
etat : string[2];
omc : byte;
country : byte;
common : word;
system : word;
net : word;
alarme : byte;
rssi : byte;
reserve : byte;
end;
var
Form1 : TForm1;


recFich : file of TrecData;
data : TrecData;
c'est bien un fichier typé?


a propo du blockread et blockwrite ceula concerne les fichier non typé?
0
elementalord Messages postés 26 Date d'inscription mercredi 25 mai 2005 Statut Membre Dernière intervention 10 juin 2005 1
1 juin 2005 à 09:08
Je vous remercie d'avoir m'aider.Merci encore.
0
Rejoignez-nous