Bonsoir,
Cela fait 40 ans que je code en Pascal (Turbo puis Delphi et maintenant Lazarus) et je n'ai jamais connu cette erreur.
Je compile le code suivant sans erreur, mais lorsque je le débogue via F7, arrivé au constructeur "Init", le débogueur pas-à-pas pointe sur la ligne BEGIN, puis saute immédiatement sur END.
Donc aucune initialisation, et forcément tout appel à un TFile par après cela plante avec un message SIGSEGV, ce qui est logique.
Alors pourquoi diable INIT ne s'exécute-t'il pas?
Please help me before I cry!
Voici le code :
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
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 Type TFile = Class(TPersistent) Constructor Init(IPath: String; Mode: Char); Destructor Done; Private F: TextFile; Path: string; end; implementation Constructor TFile.Init(IPath: String; Mode: Char); Var Code: Integer; Begin Path:=IPath; If Mode='w' Then Code:=0 else If Mode='a' Then Code:=1 else Code:=2; If FileExists(Path) Then begin AssignFile(F, Path); Case Code of 0: Rewrite(F); 1: Append(F); 2: Reset(F); end; end else Begin AssignFile(F, Path); Rewrite(F); end; end;
Partager