Bonjour à tous,
après avoir cherché dans la FAQ, sur Google et sur le forum, je me tourne vers vous car j'ai un problème que je n'arrive pas à résoudre.
Alors voilà, je cherche à écrire des données contenues dans un TRecord dans un fichier stocké sur le disque.
Pour se faire je me sers de TFileStream et des fonctions WriteBuffer et ReadBuffer.
Le code ne génére pas d'erreurs visibles et semble fonctionner toutefois quand j'ouvre mon fichier via le bloc note, word ou openofficeWriter je ne trouve que des espaces et parfois un caractére étrange (genre├). Pas de trace de ce que j'ai inséré dedans... Pourquoi ? Un problème d'encodage ? Je ne trouve pas
voilà mon code pour l'ecriture:
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 function EnregistreFichier(Nom : TFileName;position : Integer) : boolean; var F: TFileStream; i : integer; s : String; Begin F := nil; try if FileExists(Nom) then F:=TFileStream.Create(Nom, fmOpenReadWrite) else F:=TFileStream.Create(Nom, fmCreate); try F.Seek(position,soFromBeginning); with Donnees do begin F.WriteBuffer(Nombre, SizeOf(integer)); i := Length(Texte); F.WriteBuffer(i, SizeOf(i)); F.WriteBuffer(Texte[1], i); ShowMessage('insertion :' + inttostr(Nombre) + '' + inttostr(i) + Texte + ' Position : ' + intTostr(Position)); end; Result := true finally F.Free; end; except Result := False; end; End;
Partager