Ecrire une classe dans un fichier? - Delphi/Pascal - Programmation
Marsh Posté le 12-06-2007 à 16:33:40
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 :
|
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)
Marsh Posté le 31-05-2007 à 15:11:56
Bonjour,
J'essaye d'écrire une classe dans un fichier mais je n'arrive pas à la relire après coup.
Voici ce que je fais :
Type
CFichierIndexClient = class
numeroLigneClient : integer;
numeroClient : string;
constructor init();
constructor init(varnumeroLigneClient : integer; varnumeroClient : string);
procedure store();
function positionClient(numClient : string) : integer;
end;
TypeFichierIndexClient = file of CFichierIndexClient;
.
.
.
Var
fichierIndex : TypeFichierIndexClient;
Begin
assign(fichierIndex,'cheminFichier');
rewrite(fichierIndex);
write(fichierIndex,self);
close(fichierIndex);
Vous avez une idée de pourquoi ça ne fonctionne pas et comment régler le problème?
Merci d'avance pour votre aide