Bonsoir

J'ai un soucis avec l'écriture d'un fichier sur l'évènement Form OnClose dans mon éditeur de programmation.
Mon but étant de mettre un chemin vers les fichiers qui sont ouverts dans mon éditeur à la fin pour qu'ils soient réouvert à la prochaine ouverture. La réouverture fonctionne bien. Je stocke donc dans un fichier situé ./configuration/session.txt un nom de fichier par ligne.

Mais le problème c'est que l'écriture fonctionne que quand elle veut le reste du temps elle lève une erreur sur le Rewrite (mauvais fichier)

Voici mon 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
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var
  Fic: TextFile;
  nb, i : integer;
  page : TTabSheet;
  S: string;
  syn : TSynEdit;
begin
	deletefile(NameFicOpen);
	AssignFile(Fic, NameFicOpen);
   {$I-}      // instruction pour le compilateur
	Rewrite(Fic);
   {$I+}
   if IOResult <> 0 then MessageDlg('Erreur avec le fichier.', mtConfirmation, [mbOK], 0);
   nb := Form1.PageControl1.PageCount;
   for i:=0 to nb-1 do begin
      page := Form1.PageControl1.Pages[i];
      syn := TSynEdit(page.FindComponent('SynEdit'+ page.Name));
      if(syn.Modified = true) then
      	if MessageDlg('Voulez vous enregistrer les modifications de ' + page.Caption +  'avant de fermer l''application?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
			    	Form1.FichierSaveExecute(Sender);
	  	if (page.Tag = 0) then
      	Writeln(Fic, page.Hint);
   end;
  	CloseFile(Fic);
end;
Je vois pas pourquoi ça ne marche pas toujours même après avoir forcé la destruction du fichier avant de le réécrire.
Est ce qu'il faut un chemin complet et non relatif ?

Quelqu'un aurait une idée ? Parce que moi je sèche.

Merci d'avance.