Bonjour à toutes et à tous
Suite à des erreurs aléatoire IO 103, je recherche le meilleur moyen de les éviter.
Initialement j'avais ceci
Temporaire j'ai fait ceci (le but étant d'éviter l'apparition de l'erreur) "bidouille"
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 //... InfoCompteurLigne(StrToIntDef(StringGridLignesDocument.Cells[10,i],1)); //... function InfoCompteurLigne(Nbr: Integer): String; Var F: TextFile; Fichier: String; Str: String; Valeur: Integer; begin Fichier := FichierCompteurLigne + FormatDateTime(' dd_mm_yy',Date)+'.txt'; Valeur := 0; AssignFile(F,Fichier); if FileExists(Fichier) then begin Reset(F); Readln(F,Str); Valeur := StrToIntDef(Str,0); end; Valeur := Valeur + Nbr; Try Rewrite(F); WriteLn(F,IntToStr(Valeur)); Finally CloseFile(F); end; end;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Try InfoCompteurLigne(StrToIntDef(StringGridLignesDocument.Cells[10,i],1)); Except // Pas de message inutile End;
Voilà ce que je compte mettre en place désormais
Choix 1
Choix 2
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
38
39
40
41
42
43
44
45
46
47 function InfoCompteurLigne(Nbr: Integer): String; Var F: TextFile; Fichier: String; Str: String; Valeur: Integer; begin Fichier := FichierCompteurLigne + FormatDateTime(' dd_mm_yy',Date)+'.txt'; Valeur := 0; AssignFile(F,Fichier); {$I-} Reset(F); {$I+} if IoResult=0 then begin {$I-} Reset(F); {$I+} if IoResult=0 then begin {$I-} Readln(F,Str); {$I+} end; Valeur := StrToIntDef(Str,0); end; Valeur := Valeur + Nbr; {$I-} Rewrite(F); {$I+} if IoResult=0 then begin {$I-} WriteLn(F,IntToStr(Valeur)); {$I+} end; if IoResult=0 then begin {$I-} CloseFile(F); {$I+} end; end;
pour info :
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 function InfoCompteurLigne(Nbr: Integer): String; Var F: TextFile; Fichier: String; Str: String; Valeur: Integer; begin Fichier := FichierCompteurLigne + FormatDateTime(' dd_mm_yy',Date)+'.txt'; Try Valeur := 0; AssignFile(F,Fichier); Reset(F); Readln(F,Str); Valeur := StrToIntDef(Str,0); Valeur := Valeur + Nbr; Rewrite(F); WriteLn(F,IntToStr(Valeur)); CloseFile(F); Except end; end;
FichierCompteurLigne est un chemin réseau
Merci à vous pour votre grain de sel
Partager