Delphi XEを使用して、キリル文字などのシステムとは異なるコードページのテキストをTFileStreamに保存しようとしています。しかし、これらのエンコードされたファイルを生成するためのコードサンプルが見つかりませんか?
TStrings.SaveToStreamと同じコードを使用してみましたが、正しく実装したかどうか(たとえば、WriteBomの部分)、他の場所でどのように実行されるかを知りたいと思います。これが私のコードです:
FEncoding := TEncoding.GetEncoding(1251);
FFilePool := TObjectDictionary<string,TFileStream>.Create([doOwnsValues]);
//...
procedure WriteToFile(const aFile, aText: string);
var
Preamble, Buffer: TBytes;
begin
// Create the file if it doesn't exist
if not FFilePool.ContainsKey(aFile) then
begin
// Create the file
FFilePool.Add(aFile, TFileStream.Create(aFile, fmCreate));
// Write the BOM
Preamble := FEncoding.GetPreamble;
if Length(Preamble) > 0 then
FFilePool[aFile].WriteBuffer(Preamble[0], Length(Preamble));
end;
// Write to the file
Buffer := FEncoding.GetBytes(aText);
FFilePool[aFile].WriteBuffer(Buffer[0], Length(Buffer));
end;
前もって感謝します。