【问题标题】:Delphi XE6: How to load resource into TMemIniFile?Delphi XE6:如何将资源加载到 TMemIniFile 中?
【发布时间】:2018-02-20 13:41:05
【问题描述】:

我一直在运行 Delphi XE6,并试图将只读 INI 文件放入 EXE 文件中。

我已经解决了。将文件加载到 TMemo 中也可以正常工作。

我定义了以下函数,将纯TXT INI文件从资源加载到TMemo:

procedure LoadTXTfromResource(const ResourceName: string; OutMemo: TMemo);

var
  ResourceStream: TResourceStream;

begin
  ResourceStream := TResourceStream.Create(HInstance, ResourceName, RT_RCDATA);
  try
    OutMemo.Lines.LoadFromStream(ResourceStream);
  finally
    ResourceStream.Free;
  end;
end;

它运行完美。

现在,我需要的是重新编写将上述文本文件加载到 TMemIniFile 中的过程。


我一直在尝试各种事情,但我似乎无法做到。有什么提示吗?

【问题讨论】:

    标签: delphi ini


    【解决方案1】:

    你需要将资源流加载到一个字符串列表中,然后转移到TMemIniFile

    procedure LoadINIfromResource(const ResourceName: string; IniFile: TMemIniFile);
    var
      ResourceStream: TResourceStream;
      Text: TStringList;
    begin
      ResourceStream := TResourceStream.Create(HInstance, ResourceName, RT_RCDATA);
      try
        Text := TStringList.Create;
        try
          Text.LoadFromStream(ResourceStream);
          IniFile.SetStrings(Text);
        finally
          Text.Free;
        end;
      finally
        ResourceStream.Free;
      end;
    end;
    

    请注意,因为您的 TMemIniFile 不是基于文件的,所以在实例化它时必须传递一个空字符串作为文件名:

    IniFile := TMemIniFile.Create('');
    

    【讨论】:

      猜你喜欢
      • 2018-10-02
      • 2014-08-03
      • 2016-05-18
      • 2020-12-09
      • 1970-01-01
      • 2011-03-01
      • 2011-06-18
      • 2014-10-26
      相关资源
      最近更新 更多