【问题标题】:Load/Save .ini file加载/保存 .ini 文件
【发布时间】:2016-02-08 10:16:12
【问题描述】:

我编写了一个代码,让我可以将变量保存到具有自定义文件名的 .ini 文件中。文件名取决于 EditBox1 中的文本。那里没问题。我的问题是如何通过从加载文件窗口(Windows 资源管理器)中选择文件来从该自定义文件名加载这些变量。

DataIni:=TIniFile.Create(getcurrentdir+'\save folder\' + EditBox1.Text +'.ini');

样本保存变量

DataIni.WriteString('INFO','FirstName',EditFirstName.Text);
DataIni.WriteString('INFO','MiddleName',EditMiddleName.Text);
DataIni.WriteString('INFO','FamilyName',EditFamilyName.Text);

样本加载变量

EditFirstName.Text := DataIni.ReadString('INFO','FirstName',EditFirstName.Text);
EditMiddleName.Text := DataIni.ReadString('INFO','MiddleName',EditMiddleName.Text);
EditFamilyName.Text := DataIni.ReadString('INFO','FamilyName',EditFamilyName.Text);

例如 EditBox1.Text = 'MyFile1',如何通过从其他文件列表中选择 MyFile1.ini 来加载保存在 MyFile1.ini 中的变量?

【问题讨论】:

  • 使用TOpenDialog。此外,TMemIniFile 优于 TIniFile,因为后者使用已弃用的 Windows API。而且您不应该依赖正在定义的工作目录。它几乎可以是任何东西。
  • “不推荐使用的 api”-GetPrivateProfileStrings?此 API 用于许多应用程序,包括 Windows Explorer。

标签: delphi delphi-7


【解决方案1】:

您可以使用TOpenDialog 来获取所需文件的名称,因此您可以调用一个函数来加载您的值。

uses IniFiles;
...

单击按钮时,调用 OpenDialog.Execute 以允许选择文件名。

procedure TForm1.Button1Click(Sender: TObject);
begin
  with TOpenDialog.Create(Self) do
  try
    Filter := 'Ini Files (*.ini)|*.ini';
    if Execute then
      LoadMyVars(FileName);
  finally
    Free;
  end;
end;

此函数将您的 ini 文件的值加载到控件中。

procedure TForm1.LoadMyVars(const AFileName: string);
var
  DataIni : TIniFile;
begin
  DataIni := TIniFile.Create(AFileName);
  try
    EditFirstName.Text := DataIni.ReadString('INFO','FirstName', '');
    EditMiddleName.Text := DataIni.ReadString('INFO','MiddleName', '');
    EditFamilyName.Text := DataIni.ReadString('INFO','FamilyName', '');
  finally
    FreeAndNil(DataIni);
  end;
end;

【讨论】:

    猜你喜欢
    • 2014-02-07
    • 2016-04-30
    • 1970-01-01
    • 2020-02-16
    • 2016-01-25
    • 2017-08-08
    • 2011-12-08
    • 2013-08-20
    • 2016-10-19
    相关资源
    最近更新 更多