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