EEncodingError
を示すEurekaLogバグレポートがあります。ログはTFile.AppendAllText
を指します。「ターゲットマルチバイトコードページにUnicode文字のマッピングがありません」が発生する原因は何ですか?
procedure WriteToFile(CONST FileName: string; CONST uString: string; CONST WriteOp: WriteOpperation; ForceFolder: Boolean= FALSE); // Works with UNC paths
begin
if NOT ForceFolder
OR (ForceFolder AND ForceDirectoriesMsg(ExtractFilePath(FileName))) then
if WriteOp= (woOverwrite)
then IOUtils.TFile.WriteAllText (FileName, uString)
else IOUtils.TFile.AppendAllText(FileName, uString);
end;
これはEurekaLogからの情報がある:私はTFile.AppendAllText
は私のこの手順で呼び出します。この現象が発生する可能性がありますどのような
?
{$APPTYPE CONSOLE}
uses
System.SysUtils, System.IOUtils;
var
FileName: string;
begin
try
FileName := TPath.GetTempFileName;
TFile.WriteAllText(FileName, 'é', TEncoding.ANSI);
TFile.AppendAllText(FileName, 'é');
except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end;
end.
をここに私はANSIとして、元のファイルを書かれている:
TStreamReaderはどうですか?まともな選択肢と思われ、それはIOUtilsに基づいていません。 – Ampere
パーフォーマンスはややこしいです。私は、ファイルの存続期間と他の誰がそれを変更したかについての知識がなければ助言したくありません。 –