加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

打开ANSI文件并使用Delphi保存Unicode文件

发布时间:2020-12-15 04:22:51 所属栏目:大数据 来源:网络整理
导读:出于某种原因,最近我的许多客户端系统上的* .UDL文件不再兼容,因为它们曾被保存为ANSI文件,后者不再与预期的UNICODE文件格式兼容.最终结果是一个错误对话框,指出“该文件不是有效的复合文件”. 以编程方式打开这些文件并保存为unicode文件的最简单方法是什么
出于某种原因,最近我的许多客户端系统上的* .UDL文件不再兼容,因为它们曾被保存为ANSI文件,后者不再与预期的UNICODE文件格式兼容.最终结果是一个错误对话框,指出“该文件不是有效的复合文件”.

以编程方式打开这些文件并保存为unicode文件的最简单方法是什么?我知道我可以通过在记事本中打开每个文件然后保存为同一个文件但在保存为对话框的编码部分中选择“unicode”来执行此操作,但我需要在程序中执行此操作以减少支持调用.

这个问题很容易复制,只需在目录中创建一个* .txt文件,将其重命名为* .UDL,然后使用microsoft编辑器进行编辑.然后在记事本中打开它并将其另存为ANSI编码文件.尝试从udl编辑器打开udl,它会告诉你它的损坏.然后将其(使用记事本)保存为Unicode编码文件,它将再次正常打开.

解决方法

这与我的 TGpTextFile单元非常简单.我将把一个简短的样本放在一起并在这里发布.

新的Delphi 2009也应该非常简单 – 你可以使用它吗?

编辑:这是他如何在2009年之前的Delphis中使用我的东西.

var
  strAnsi   : TGpTextFile;
  strUnicode: TGpTextFile;
begin
  strAnsi := TGpTextFile.Create('c:test.udl');
  try
    strAnsi.Reset; // you can also specify non-default 8-bit codepage here
    strUnicode := TGpTextFile.Create('c:test-out.udl');
    try
      strUnicode.Rewrite([cfUnicode]);
      while not strAnsi.Eof do
        strUnicode.Writeln(strAnsi.Readln);
    finally FreeAndNil(strUnicode); end;
  finally FreeAndNil(strAnsi); end;
end;

许可证:上面的代码片段属于公共域.无论如何,请使用它.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读