Ouaip... Les objets, c'est pas trop soluble dans les fichier
Ca ne marche pas parcequ'une classe est un pointeur menant sur des données. Quand tu fait "write(fichierIndex,self);", tu ecrit donc la valeur du pointeur (4 octects) dans ton fichier, ce qui ne sert pas à grand chose.
Le plus "simple" est de passer par l'intermédiaire d'un record qui ne contiendrais que des type de base : Pas d'objet, pas de pointer et pas de chaine longue . Il faudrait(au moins dans le record) changer tes type string par des String[255] (ou moins si tu veut gagner de la place).
Donc :
Code :
- type
- TRecordClient = record
- NumeroLigneClient : integer;
- numeroClient : string[50];
- end
- TypeFichierIndexClient = file of TRecordClient
- (...)
- var RecordClient : TRecordClient
- fichierIndex : TypeFichierIndexClient;
- Begin
- assign(fichierIndex,'cheminFichier');
- rewrite(fichierIndex);
- RecordClient.NumeroClient := self.numeroClient;
- RecordClient.numeroLigneClient := self.numeroLigneClient;
- write(fichierIndex,RecordClient);
- close(fichierIndex);
|
Solution avancé : Utiliser l'interface IStream ou sauvegarder les donnée de ton objet dans un fichier XML. Mais dans tout les cas, tu doit "expliquer" toi mème à l'ordinateur comment il faut traduire l'objet en fichier (et vice-versa pour la lecture)
Message édité par el zozo le 12-06-2007 à 16:42:12