• Tiburon 支持 Unicode 的 LoadFromFile, SaveToFile


    在 Tiburon 中,我可以在诸如 TMemo, TListBox, TComboBox (和其它包含字符的 lists)等控件中使用 Unicode 字符。那如何从一个文件中加载、保存 strings 呢?我需要在已经用 Delphi 和 C++ Builder 写好的程序中做什么样的更改才能为这些组件处理 Unicode 字符呢?下面就是答案:

    在 LoadFromFile 和 SaveToFile 方法中,出现了一个新的、可选的参数。可选参数名字是 "Encoding",其类型是 "TEncoding"。TEncoding (该类型声明在 SysUtils 单元内)几个 class properties,可以帮助您指定加载或者保存的 strings 的类型:ASCII, BigEndianUnicode, Default, Unicode, UTF7, UTF8。

    下面是 LoadFormFile 和 SaveToFile 在包含 TStrings 类型的控件中的声明(声明在 Classes 单元中):

    Delphi:
      procedure TStrings.LoadFromFile(const FileName: string);
      procedure TStrings.LoadFromFile(const FileName: string; Encoding: TEncoding);
      procedure TStrings.SaveToFile(const FileName: string);
      procedure TStrings.SaveToFile(const FileName: string; Encoding: TEncoding);

    C++Builder:
      virtual void __fastcall LoadFromFile(const System::UnicodeString FileName);
      virtual void __fastcall LoadFromFile(const System::UnicodeString FileName, Sysutils::TEncoding* Encoding);
      virtual void __fastcall SaveToFile(const System::UnicodeString FileName);
      virtual void __fastcall SaveToFile(const System::UnicodeString FileName, Sysutils::TEncoding* Encoding);

    查看 Delphi 中 implementation 部分的 SaveToFile 方法,可以看到它使用了 TStream 来保存带有 TEncoding 信息的 strings:

    procedure TStrings.SaveToFile(const FileName: string);
    begin
      SaveToFile(FileName, nil);
    end;

    procedure TStrings.SaveToFile(const FileName: string; Encoding: TEncoding);
    var
      Stream: TStream;
    begin
      Stream := TFileStream.Create(FileName, fmCreate);
      try
        SaveToStream(Stream, Encoding);
      finally
        Stream.Free;
      end;
    end;

    下面的示例展示了如何在你的窗体上用 ListBox 控件加载和保存 strings:

    Delphi:
      Listbox1.Items.LoadFromFile(’c:\temp\MyListBoxItems.txt’,TEncoding.UTF8)
      ListBox1.Items.SaveToFile(’MyListBoxItems.txt’,TEncoding.UTF8);

    C++Builder:
      ListBox1->Items->LoadFromFile("c:\\temp\\MyListBoxItems.txt", TEncoding::UTF8);
      ListBox1->Items->SaveToFile("c:\\temp\\MyListBoxItems.txt",TEncoding::UTF8);

    这是上面这个 Delphi 例子程序的屏幕截图:

    Tiburon <wbr>支持 <wbr>Unicode <wbr>的 <wbr>LoadFromFile, <wbr>SaveToFile

    使用 Tiburon,现在我的 Delphi 和 C++ Demo 程序可以在列表框、编辑框和标签上使用 Uincode 字符了,而且我也可以直接在硬盘上读写 Unicode 的 strings。

    原文地址:http://blogs.codegear.com/davidi/2008/07/15/38898/

    翻译:峪飞鹰

    转载请注明出处!

    没事,别怕,这是签名→→┃ 青山幽谷笛声扬,白鹤振羽任翱翔。往事前尘随风逝,携手云峰隐仙乡。 ┃
  • 相关阅读:
    gcc 编译器常用的命令行参数一览
    linux下源代码分析和阅读工具比较
    Linux系统——C/C++开发工具及环境搭建
    GDB调试——经验总结
    gdb调试的艺术——Debug技巧
    命令__cp、scp(Secure Copy)
    常用shell脚本命令
    命令__查找、替换、删除
    UltraEdit 删除空行
    命令__shell数字-字符串比较
  • 原文地址:https://www.cnblogs.com/dabiao/p/1756187.html
Copyright © 2020-2023  润新知