Bonjour,
je cherche à écrire de l'UNICODE dans un fichier texte.
Le programme est très simple :
(Sauf que la première chaîne s'écrit "Кгыыу" et la seconde "َقضلاث", c'est la balise "code" du site qui fait la transformation).
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 procedure TForm1.Button2Click(Sender: TObject); const kFilename = 'D:\test.txt'; var Outfile : system.text; begin AssignFile(OutFile, kFilename); Rewrite(OutFile); try WriteLN(Outfile, 'Кгыыу'); WriteLN(Outfile, 'َقضلاث'); finally CloseFile(OutFile); end; end;
Quand je regarde dans mon fichier, j'ai bien deux lignes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ????? ??????
Bon, je cherche dans l'unité system.pas, et je trouve :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 TFileRec = packed record (* must match the size the compiler generates: 592 bytes *) [...] case Byte of 0: (RecSize: Cardinal); // files of record 1: (BufSize: Cardinal; // text files [...] BufPtr: PAnsiChar; [...] { Text file record structure used for Text files } PTextBuf = ^TTextBuf; TTextBuf = array[0..127] of AnsiChar; // TODO: change to WideChar TTextRec = packed record (* must match the size the compiler generates: 720 bytes *)
C'est moi ou le mec de CodeGear a oublié de vider sa ToDo List avant de livrer la release ?
On ne peut plus utiliser system.text si on veut écrire de l'UNICODE ?
Merci de votre réponse
(J'ai peur...)
Partager