【问题标题】:How to use .Ini Files in FMX/Delphi如何在 FMX/Delphi 中使用 .ini 文件
【发布时间】:2019-05-16 13:38:30
【问题描述】:

对于一个程序,我真的需要你的帮助。

我找到了一个 cross platform Delphi script 来在设备上保存和加载 INI 文件,这是为早期的 Delphi 版本制作的。

现在,我的问题是:它在我的 Windows 计算机上运行良好,但在 Android 上无法运行。主要问题是它不知道第 61 行 (FMX.Inifiles.Android) 上的单元引用,并且缺少这个单元,它无法继续。

有什么办法可以解决这个问题吗?

【问题讨论】:

  • 仔细查看该存储库,您会发现它:github.com/freeonterminate/delphi/tree/master/FMX.IniFile
  • "有什么办法可以解决这个问题吗?"通过确保缺少的文件存在,或者在与您的项目相同的文件夹中,或者在项目或 IDE 的搜索路径中。
  • 是的,我这样做了,问题是文件已过时,根本无法在 Rad Studio 10 中使用。 FMX.IniFile.Android.pas 使用旧的 vommand,不再支持,Delphi 也会将其作为错误给出。

标签: delphi ini tinifile


【解决方案1】:

您可以使用IniFiles 单位。我已经在 android、windows 和 linux 上使用过它,它似乎工作正常。对于 android 上的文件路径,您可以使用以下内容: System.IOUtils.TPath.GetDocumentsPath + System.SysUtils.PathDelim + 'config.ini'

在adnroid上保存ini的代码示例:

procedure SaveSettingString(Section, Name, Value: string);
var
  ini: TIniFile;
begin
  ini := TIniFile.Create(System.IOUtils.TPath.GetDocumentsPath + System.SysUtils.PathDelim + 'config.ini');
  try
    ini.WriteString(Section, Name, Value);
  finally
    ini.Free;
  end;
end;

加载字符串示例:

function LoadSettingString(Section, Name, Value: string): string;
var
  ini: TIniFile;
begin
  ini := TIniFile.Create(System.IOUtils.TPath.GetDocumentsPath + System.SysUtils.PathDelim + 'config.ini');
  try
    Result := ini.ReadString(Section, Name, Value);
  finally
    ini.Free;
  end;
end;

在加载您设置的任何值时,如果该名称/键不存在,则将返回该值。

【讨论】:

  • 谢谢,但是如果我使用这些命令,我​​应该使用哪些单位?仅适用于 android 版本和 Windows 版本的 Ioutils?或者你的意思是我应该hse github代码并调整android部分的行?还是谢谢
  • 在您的使用中添加IniFiles。这适用于所有平台。然后就可以使用我提供的代码了。
  • 已编辑:它有效,再次感谢@Adriaan Boshoff,但我还有一个问题:如果我想在手机上打开文件以编辑 ini 文件中的一些值或只是观看它的结构,我的手机在我的手机上找不到文件。有没有办法做到这一点
  • 人们不应该能够查看或编辑该文件。我建议制作一条调试消息来检查文件路径的位置。创建一个按钮并在点击时使用以下代码:Showmessage(System.IOUtils.TPath.GetDocumentsPath + System.SysUtils.PathDelim + 'config.ini');
  • 谢谢,但我认为这不是我所需要的,我需要打开文件本身,不管它的路径是什么。如果我可以在手机上打开它会非常有帮助,但听起来好像没有办法做到这一点,对吧?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-08-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-08
  • 2011-01-06
  • 1970-01-01
相关资源
最近更新 更多