Delphi XE5实现通过TMemoryStream将一个UnicodeString写入到一个Unicode文本文件


本文整理自网络,侵删。

 

本文章介绍了Delphi XE5实现通过TMemoryStream将一个UnicodeString写入到一个Unicode文本文件,之前研究了通过TMemoryStream将UnicodeString写入到文本文件,但是打开后,是乱码,是因为文本文件的字符表示为Ansi,所以写进去打开有问题,当然也可以通过TStrings的SaveToFile来保存成Unicode,但是TMemoStream的SaveToFile没有这样的功能,所以需要提前将Unicode标志写入到文本文件中,下面是代码:


procedure SaveUnicodeA(f:string;s:string);

var

  Buffer, Preamble: TBytes;

  ms:TMemoryStream;

  ws:WideString;

  hs:array[0..1]of char;

begin

  if s='' then exit;

  try

    ms:=TMemoryStream.Create;

    //Buffer := TEncoding.Unicode.GetBytes(s);

    Preamble := TEncoding.Unicode.GetPreamble;

    if Length(Preamble) > 0 then

      ms.WriteBuffer(Preamble, Length(Preamble));

    ms.WriteBuffer(PChar(s)^,length(s)*2);

    ms.SaveToFile(f);

  finally

    ms.Free;

  end;

end;

相关阅读 >>

Delphi 几种程序自杀的方法

Delphi firedac 下的 sqlite [11] - 关于批量提交 sql 命令的测试

Delphi 自带rest调试工具 restdebugger 用法

Delphi msxml 获取 api接口

Delphi 打开文件夹并定位到一个文件

Delphi写游戏外挂

Delphi 获取当前系统语言环境(en,fr,ja等)

Delphi hbp-1100u 欧姆龙血压计的usb调用方法

Delphi trayicon1 托盘气泡提示

Delphi调用cmd并取得输出字符

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...