Problème avec writeln [Résolu]

LeNoyauDur 35 Messages postés vendredi 14 septembre 2007Date d'inscription 25 août 2008 Dernière intervention - 17 avril 2008 à 21:30 - Dernière réponse : LeNoyauDur 35 Messages postés vendredi 14 septembre 2007Date d'inscription 25 août 2008 Dernière intervention
- 21 avril 2008 à 20:32
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.
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
f0xi 4304 Messages postés samedi 16 octobre 2004Date d'inscription 9 mars 2018 Dernière intervention - 18 avril 2008 à 16:56
3
Merci
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%" />

Merci f0xi 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de f0xi
Cirec 4231 Messages postés vendredi 23 juillet 2004Date d'inscription 3 août 2018 Dernière intervention - 18 avril 2008 à 12:40
0
Merci
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="" />
Commenter la réponse de Cirec
LeNoyauDur 35 Messages postés vendredi 14 septembre 2007Date d'inscription 25 août 2008 Dernière intervention - 18 avril 2008 à 18:01
0
Merci
@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.
Commenter la réponse de LeNoyauDur
Cirec 4231 Messages postés vendredi 23 juillet 2004Date d'inscription 3 août 2018 Dernière intervention - 19 avril 2008 à 10:49
0
Merci
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 ="" />
Commenter la réponse de Cirec
LeNoyauDur 35 Messages postés vendredi 14 septembre 2007Date d'inscription 25 août 2008 Dernière intervention - 21 avril 2008 à 20:32
0
Merci
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.
Commenter la réponse de LeNoyauDur

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.