Bonjour,

J'ai des soucis avec ce 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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
 
type
 
PAtome = ^TAtome;
TAtome = record
    Index : Integer;
    Mot : WideString;
    end;
 
 
 
procedure TForm1.FormCreate(Sender: TObject);
Var
 i : Integer;
 vChaine : WideString;
 vPMot : PAtome;
 
begin
  List_Test := Tlist.Create;
  for i:=0 to 10 do
    begin
    New(vPMot);
    vPMot.Mot := 'Chaine '+WideChar(12448+i);
    vPMot.Index := i+1;
    List_Test.Add(vPMot)
    end;
end;
 
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  List_Test.Clear;
  List_Test.Free;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
Var
  i : Integer;
  vChaine : WideString;
  vPMot : PAtome;
  vNomFichier : String;
  vF : TFileStream;
begin
  vF.Create('Test_Liste.cvs', fmOpenWrite);
for i:=0 to List_Test.Count-1 do
  begin
//  vF.Create('Test_Liste.cvs', fmOpenWrite);
  vPMot :=  List_Test.Items[i];
  vF.Write(vPMot^.Mot, Length(vPMot^.Mot)*Sizeof(WideChar)+1);
//  vF.Free;
  end;
vF.Free;
end;
 
 
procedure TForm1.Button2Click(Sender: TObject);
Var
  i : Integer;
  vChaine : WideString;
  vPMot : PAtome;
  vNomFichier : String;
  vF : TFileStream;
begin
for i:=0 to List_Test.Count-1 do
  begin
  vF.Create('Test_Liste.cvs', fmOpenWrite);
  vPMot :=  List_Test.Items[i];
  vF.Write(vPMot^.Mot, Length(vPMot^.Mot)*Sizeof(WideChar)+1);
  vF.Free;
  end;
end;
Avec le Btn1, le filestream s'ouvre, mais la boucle for ne s'exécute pas, et le FS est libéré aussitôt

Avec le btn2, le prog rentre dans la boucle for, pour en sortir aussitôt que le FS est ouvert en écriture

Je n'ai pas encore testé un Btn3

Quelqu'un pourrait-il m'indiquer ce qui foire, ou comment régler le débuggueur pour que ça marche ?

Merci pour vos conseils