Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2704 connectés 

  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  Ecrire une classe dans un fichier?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Ecrire une classe dans un fichier?

n°1568014
Davjack
Asta la vista miam miam !!!
Posté le 31-05-2007 à 15:11:56  profilanswer
 

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 :
 

Citation :

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

mood
Publicité
Posté le 31-05-2007 à 15:11:56  profilanswer
 

n°1573886
el zozo
Stroumf Grognon
Posté le 12-06-2007 à 16:33:40  profilanswer
 

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 :
  1. type
  2. TRecordClient =  record
  3.   NumeroLigneClient : integer;
  4.   numeroClient : string[50];
  5. end
  6. TypeFichierIndexClient = file of TRecordClient
  7. (...)
  8. var RecordClient : TRecordClient
  9. fichierIndex : TypeFichierIndexClient;
  10. Begin
  11. assign(fichierIndex,'cheminFichier');
  12. rewrite(fichierIndex);
  13. RecordClient.NumeroClient := self.numeroClient;
  14. RecordClient.numeroLigneClient := self.numeroLigneClient;
  15. write(fichierIndex,RecordClient);
  16. 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

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  Ecrire une classe dans un fichier?

 

Sujets relatifs
[JAVASCRIPT] chargement fichier lors de lappel d'une fonctionSpécifier un nom de fichier lors du "Enregister sous"
Problème avec le contenu d'un fichierenregistrement d'un nouveau fichier dans le repertoire d'origine ?
Enregistrer et lire un fichier txt[BATCH] Supprimer le début des lignes d'un fichier
Taille maximale d'un fichier xmlMacro excel pour traitement fichier word
Récupérer un fichier et le retransmettre par la suite.Manipulation des octets d'un fichier binaire
Plus de sujets relatifs à : Ecrire une classe dans un fichier?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR