Type ENUM sauvegarde et restauration dans un fichier texte [Résolu]

Signaler
Messages postés
10
Date d'inscription
mardi 30 septembre 2008
Statut
Membre
Dernière intervention
3 décembre 2009
-
Messages postés
4580
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
-
Bonjour à tous,
je sauvegarde des variables de type enum dans un fichier texte en les convertissant en chaine.
avec le code suivant:
procedure Save(NomFichier:string);
var F:TextFile;
begin
AssignFile(F,NomFichier);
Rewrite(F);
writeln(F,
GetEnumName(typeInfo(TTypeEnum1),integer(VarEnum1))+' '+
GetEnumName(typeInfo(TTypeEnum2),integer(VarEnum2))+' '+
GetEnumName(typeinfo(TTypeEnum3),integer(VarEnum3))+' '+
GetEnumName(typeinfo(TTypeEnum4),integer(VarEnum4)));
CloseFile(F);
end;

L'écriture se passe bien.
Pour la lecture j'utilise la procedure readln. Et je split la ligne en fonction du séparateur ' '.
Mon problème est que je ne sais pas reconvertir les chaines en enum.

Connaissez-vous une fonction que le fait?
Merci d'avance.

4 réponses

Messages postés
991
Date d'inscription
samedi 25 octobre 2003
Statut
Membre
Dernière intervention
29 août 2013
5
procedure Save(NomFichier:string);
var F:TextFile;
begin
AssignFile(F,NomFichier);
Rewrite(F);
writeln(F,
Ord(VarEnum1),
Ord(VarEnum2),
Ord(VarEnum3),
Ord(VarEnum4));// stockage en integer
CloseFile(F);
end;

procedure Load(NomFichier:string);
var F:TextFile;
iVarEnum1, iVarEnum2, iVarEnum3, iVarEnum4: integer;
begin
AssignFile(F,NomFichier);
Reset(F);
readln(F, 
iVarEnum1),
iVarEnum2),
iVarEnum3),
iVarEnum4));//lecture en integer
CloseFile(F);
VarEnum1 := TTypeEnum1(iVarEnum1); //transtypage en TTypeEnumX
VarEnum2 := TTypeEnum2(iVarEnum2);
VarEnum3 := TTypeEnum3(iVarEnum3);
VarEnum4 := TTypeEnum4(iVarEnum4);
end;
Messages postés
4580
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
27
La contrepartie de GetEnumName est tout simplement...GetEnumValue !

May Delphi be with you

Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
Messages postés
3793
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
8
Attention toutefois, les routines de fichier Pascal sont obsolètes (AssignFile, RewriteFile, TextFile, etc ...). Bien pour apprendre, mais maintenant il est recommandé d'utiliser TFileStream (ou TStringList). Tu verras c'est beaucoup plus simple et puissant

Cordialement, Bacterius !
Messages postés
10
Date d'inscription
mardi 30 septembre 2008
Statut
Membre
Dernière intervention
3 décembre 2009

Merci pour vos réponses.