Problème avec writeln

Résolu
Signaler
Messages postés
35
Date d'inscription
vendredi 14 septembre 2007
Statut
Membre
Dernière intervention
25 août 2008
-
Messages postés
35
Date d'inscription
vendredi 14 septembre 2007
Statut
Membre
Dernière intervention
25 août 2008
-
Bonjour,


J'essai de mettre en place un système de fichier sous Delphi et j'ai un petit souci avec le writeln qui me fait un message d'erreur

type
  OccEleve = record
    Prenom, Nom : string[25];
    AnNaiss, NumClasse : integer;
  end;

var
  FrmCrea: TFrmCrea;
  Fichier:Textfile;

  assignfile(Fichier,'C:\Delphi.txt');
  rewrite(Fichier);

 if ok then
  begin
     fichEl.Nom := EdtNom.Text;
     fichEl.Prenom := EdtPre.Text;
     fichEl.AnNaiss := StrToInt(EdtAn.Text);
     fichEl.NumClasse := StrToInt(EdtCla.Text);
     writeln(Fichier, fichEl);
  end;

et avec ça j'ai le message d'erreur suivant : Type illégal dans une instruction write/writeln (code 153).

Merci

LeNoyauDur





<hr />
I'd rather be insulted by you than someone i respect.

5 réponses

Messages postés
4202
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
13 juin 2020
37
type
  OccEleve = record
    Prenom, Nom : string[25];
    AnNaiss, NumClasse : integer;
  end;

var
  FrmCrea: TFrmCrea;

begin
 
  if ok then
    with TFileStream.Create('C:\delphi.txt', fmCreate) do
    try
      fichEl.Nom       := EdtNom.Text;
      fichEl.Prenom    := EdtPre.Text;
      fichEl.AnNaiss   := StrToInt(EdtAn.Text);
      fichEl.NumClasse := StrToInt(EdtCla.Text);
      WriteBuffer(FichEl, SizeOf(OccEleve));
    finally
      Free;   
    end;
 
end;




<hr size="2" width="100%" />
Messages postés
3826
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
10 mai 2021
46
Salut,

essaye voir comme ceci :

type
  TOccEleve = record
    Prenom, Nom : string[25];
    AnNaiss, NumClasse : integer;
  end;

var
  FrmCrea: TFrmCrea;
  Fichier: File Of TOccEleve ;
  fichEl: TOccEleve;

....
     write(Fichier, fichEl);

 
@+
Cirec

<hr siz="" />
Messages postés
35
Date d'inscription
vendredi 14 septembre 2007
Statut
Membre
Dernière intervention
25 août 2008
1
@cirec : j'ai essayé ta solution il y a toujours un message d'erreur (le même qui apparait), d'après mes recherches, la gestion de fichier entre delphi 6 et delphi 7 à changée.

La solution de f0xi par contre marche impec'.

Merci bien pour l'aide.

LeNoyauDur

<hr />
I'd rather be insulted by you than someone i respect.
Messages postés
3826
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
10 mai 2021
46
Re,

encore aurait il fallu faire ce que je proposai

Code testé et fonctionnel :

Type
  TOccEleve = Record
    Prenom, Nom : String [25];

    AnNaiss, NumClasse : integer;
  End;

Var

  Form1: TForm1;
  Fichier: File Of
TOccEleve ;
  fichEl: TOccEleve;

Implementation

{$R
*.dfm}

Procedure
TForm1.Button1Click(Sender: TObject);
Begin
  assignfile(Fichier,'C:\Delphi.txt');
  rewrite(Fichier);

     fichEl.Nom : = 'Toto';

     fichEl.Prenom := 'titi';

     fichEl.AnNaiss := 1024;

     fichEl.NumClasse := 5;
      Write (Fichier, fichEl);
  CloseFile(Fichier);

End;

Tu remarqueras que c'est exactement ce que je t'ai dit de faire
si vous ne faites pas ce qu'on vous dit ... ben c'est normal ça ne marche pas

ceci dit la méthode que propose F0xi est bien meilleur mais celle que tu voulais utiliser fonctionne aussi
 
@+
Cirec

<hr siz ="" />
Messages postés
35
Date d'inscription
vendredi 14 septembre 2007
Statut
Membre
Dernière intervention
25 août 2008
1
En effet j'ai réussi à tout faire marcher mon problème se situais en fait dans la déclaration de mes variables globales (j'utilise plusieurs formulaires).

En tout cas merci bien.