ENREGISTREMENT ET LECTURE D'UN TYPE RECORD

cs_Nono40 Messages postés 962 Date d'inscription mercredi 3 avril 2002 Statut Membre Dernière intervention 12 septembre 2006 - 19 avril 2002 à 22:39
Smith4400 Messages postés 39 Date d'inscription dimanche 25 janvier 2009 Statut Membre Dernière intervention 20 août 2009 - 25 mai 2009 à 19:20
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/11867-enregistrement-et-lecture-d-un-type-record

Smith4400 Messages postés 39 Date d'inscription dimanche 25 janvier 2009 Statut Membre Dernière intervention 20 août 2009
25 mai 2009 à 19:20
merci c tres outils pour moi
cs_trent Messages postés 2 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 28 mars 2004
24 nov. 2003 à 12:18
question : comment faire si le Record contient un pointeur qui pointe vers le même type de Record et ainsi de suite ? donc comment retrouver les liens entre ces Record lorsqu'on lis le fichier ?
merci d'avance :)
cs_j1mb0 Messages postés 13 Date d'inscription mardi 17 décembre 2002 Statut Membre Dernière intervention 27 juin 2003
27 juin 2003 à 10:29
aussi tu aurais pu procéder de cette manière:

type
TMonType=record
Texte:string[64];
Numero:integer;
Vrai:boolean;
end;
var MonTruk:TMonType;

//pour enregistrer ce type
var Fic:TFileStream;

Fic := TFileStream.Create('c: est.dat', fmOpenWrite or fmCreate);

Fic.WriteBuffer(MonTruk, sizeof(MonTruk));
Fic.Free;

//pour lire ce type
var Fic:TFileStream;

Fic := TFileStream.Create('C: est.dat', fmOpenRead);
Fic.ReadBuffer(MonTruk, sizeof(MonTruk));
Fic.Free;

--------

MonTruk peut etre un tableau ou nimporte quoi qui a une taille fixe.
fabiin Messages postés 329 Date d'inscription mercredi 4 avril 2001 Statut Membre Dernière intervention 8 décembre 2009 6
20 avril 2002 à 12:32
arf, ok, donc en faite g pas besoin de seek, je croyai ke y'avai ke write ki déplacai la position
cs_Nono40 Messages postés 962 Date d'inscription mercredi 3 avril 2002 Statut Membre Dernière intervention 12 septembre 2006 2
19 avril 2002 à 22:39
Heu, Fabiin il ya une petite erreur : Write n'écrit pas à la fin du fichier mais à la position en cours ! Il est tout à fait possible de faire un Seek avant un write pour mettre à jour un enregistrement. Pour ensuite ajouter des enregistrement il faut faire un Seek(FileSize(Fichier)) pour se placer en fin de fichier.
Il faut noter aussi que Read() et Write() déplace la position en cours d'un enregistrement.
Contrairement aux fichiers TextFile, peut importe le mode d'ouverture Reset() ou Rewrite(), le fichier est toujours ouvert en lecture/écriture.