van6071
Messages postés20Date d'inscriptionmercredi 8 mars 2006StatutMembreDernière intervention15 mars 2006
-
9 mars 2006 à 16:00
jlen100
Messages postés1606Date d'inscriptionsamedi 10 juillet 2004StatutMembreDernière intervention25 juillet 2014
-
9 mars 2006 à 18:12
Bonjour,
J'ai l'erreur suivante lorsque je relance le prog (dans la procédure : procedure TfrmACCUEIL.FormCreate(Sender: TObject);): -
Le projet ProgEuro.exe a déclenché la classe d'exception
EAccessViolation avec le message 'Violation d'accès à l'adresse
0040485F dans le module 'ProgEuro.exe'. Lecture de l'adresse FFFFFFFF'.
Quelqu'un peut m'expliquer quel est mon problème ?
Cirec
Messages postés3833Date d'inscriptionvendredi 23 juillet 2004StatutModérateurDernière intervention18 septembre 202250 9 mars 2006 à 16:33
Salut,
jlen à raison alors corrige déjà ce qui est en rouge
if not FileExists('c:\program files\Euro Million\tirage.del') then Rewrite(tirage) Else reset(tirage);
if FileSize(tirage)> 0 then
begin
read(tirage,euro);
labnum.Caption:= string(filesize(tirage));
labdat.Caption:=euro.date;
labn1.Caption:=string(euro.n1); // ici tu corrige toutes les ligne en Labn1.Caption := IntToStrDef(euro.n1);
million= record // ici tu es encore dans la déclaration de type
index: integer; // donc pas besoin de mette Type devant
date: string[20];
n1: integer;
n2: integer;
n3: integer;
n4: integer;
n5: integer;
et1: integer;
et2: integer;
end;
var frmACCUEIL: TfrmACCUEIL;
implementation {$R *.DFM}
procedure TfrmACCUEIL.btSAISIEClick(Sender: TObject);
var tirage: fileof million;
cpt :integer;
euro:million;
begin AssignFile (tirage,'tirage.del'); // tu rajoutes ton chemin
reset(tirage);
cpt: =FileSize(tirage)+1;
euro.index:= cpt;
euro.date:=txtdate.text ;
euro.n1:=StrToIntDef(txtn1.text,0);
euro.n2:=StrToIntDef(txtn1.text,0);
euro.n3:=StrToIntDef(txtn1.text,0);
euro.n4:=StrToIntDef(txtn1.text,0);
euro.n5:=StrToIntDef(txtn1.text,0);
euro.et1:=StrToIntDef(txtet1.Text,0);
euro.et2:=StrToIntDef(txtet2.Text,0);
write(tirage,euro);
CloseFile(Tirage);
end ;
procedure TfrmACCUEIL.FormCreate(Sender: TObject);
var tirage: fileof million;
euro:million;
begin AssignFile (tirage,'tirage.del'); // tu rajoutes ton chemin ici et à la ligne suivante
ifnot FileExists('tirage.del') then Rewrite(tirage);
reset(tirage);
if FileSize(tirage)> 0 then begin
read(tirage,euro);
labnum.Caption: =IntToStr(filesize(tirage));
labdat.Caption:=euro.date;
labn1.Caption:=IntToStr(euro.n1);
labn2.Caption:=IntToStr(euro.n2);
labn3.Caption:=IntToStr(euro.n3);
labn4.Caption:=IntToStr(euro.n4);
labn5.Caption:=IntToStr(euro.n5);
labet1.Caption:=IntToStr(euro.et1);
labet2.Caption:=IntToStr(euro.et2);
end;
CloseFile(Tirage);
end;
end.
et même pour la petite histoire le reset après le rewrite ça passe il ne fait que remettre le pointeur en début de fichier
Cirec
Messages postés3833Date d'inscriptionvendredi 23 juillet 2004StatutModérateurDernière intervention18 septembre 202250 9 mars 2006 à 17:22
ps :
en remettant en place le décalage dans la déclaration du Type de fichier le plantait bien à la ligne indiqué mais c'était à cause de la ligne précédente :
labnum.Caption:=string(filesize(tirage));
Voir la bonne méthode plus haut
van6071
Messages postés20Date d'inscriptionmercredi 8 mars 2006StatutMembreDernière intervention15 mars 2006 9 mars 2006 à 18:06
Houla!!
Merci tout le monde, c'est mon premier prog en Delphi alors j'ai acheté un bouquin et dedans il disait que pour faire le transcryption il suffisait de faire comme j'ai écrit.
Mais je crois ce que bouquin n'est pas très fiable.
Pour tester je procédais comme suit.
destruction manuelle du fichier
lancement du prog
entrée des données
validation.
et c'est quand je relancais le prog que ça plantait
Ils vous faudra beaucoup de patiente avec moi car mes neuronnes sont un peu rouillés et je tient à ne pas mourrir complètement idiot alors je m'accroche.
jlen100
Messages postés1606Date d'inscriptionsamedi 10 juillet 2004StatutMembreDernière intervention25 juillet 201413 9 mars 2006 à 18:12
pour le transtypage il vaut mieux éviter les mots résevés : si le
compilateur ne rouspète pas (ce qui n'est pas sur) tu risque d'avoir de
désagréables surprises dans le reste du programme quand tu utilseras ce
mot dans sa fonction initiale