Bonjour
Alors, le titre est assez explicite mais voici le soucis dans les détails :
Je doit faire un exercice où il me faut créer un annuaire de personnes dans un fichier .DAT (je sais c'est débile j'aurai fait un base données paradox si j'avais eu le choix).
J'arrive à une étape où je dois afficher le contenu de mon fichier dans un mémo, ça parait simple mais j'y arrive pas... Mon fichier contient des records de type TPersonne (TPersonne contient : nom, prenom, age et email).
Voici la déclaration du Type :
Voici la procédure du bouton qui doit afficher le contenu du fichier dans le memo :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Type TPersonne = Record nom : string[20]; prenom : string[15]; age : integer; email : string[50]; end;//fin type TPersonne ... Var//globales FAnnuaire : file of TPersonne;
Le problème c'est que j'ai une erreur de compilation : [Erreur] UAnnuaire.pas(137): Types incompatibles : 'String' et 'TPersonne'.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 {=============================================================================== Procedure : BtnAfficher OnClick Description : Affiche le contenu du fichier ===============================================================================} procedure TForm1.BtnAfficherClick(Sender: TObject); begin assignFile(FAnnuaire, 'Annuaire.dat'); if(FileExists('Annuaire.dat'))//on s'assure que le fichier existe then begin reset(FAnnuaire);//ouverture du fichier et positionnement au début while not Eof(FAnnuaire) do begin Read(FAnnuaire, Personne);//lecture : il faut OBLIGATOIREMENT un type MemContenu.Lines.Add(Personne);//ajout de la ligne courante dans le memo end;//fin while CloseFile(FAnnuaire);//fermeture du fichier end;//fin if end;//fin procedure
J'avais déjà eu le cas de figure parce que je n'avais pas un type pour le read. Du coup j'avais fait une variable "ligne" de type TString25 et ça avait passé car il s'agissait d'une string (et le memo attend une string pour l'afficher).
Merci beaucoup pour votre aide précieuse.
Partager