.ini文件没有创建

ple*_*103 2 delphi delphi-2010

我已经开始使用.ini文件了,因为我发现它与.txt文件相比有很多优点.无论如何,我用谷歌搜索"delphi inifiles",我现在正在关注Delphi的指南.然而,即使所有语法都正确,我试过的第一行也给了我麻烦.

德尔福关于代码:

IniFile := TIniFile.Create('myapp.ini') ;
Run Code Online (Sandbox Code Playgroud)

我的代码:

IniFile := TIniFile.Create('SWEDISH_HOUSE_MAFIA.ini');
Run Code Online (Sandbox Code Playgroud)

唯一的区别是.ini文件本身的名称.还有,我有:

  • 在'uses'子句中声明'IniFiles'
  • (本地)宣布IniFile

我已将该代码放在FormCreate下,但问题是在运行程序时不会创建.ini文件.谁知道问题可能是什么?我问了一个朋友,他说这是一个许可问题.

额外细节:

  • 操作系统 - Windows 7旗舰版64位(管理权限)
  • 程序存储在 - 我的文档中
  • 我用 - Delphi 2010

Dav*_*nan 15

第一个问题是只有在向ini文件写入内容时才会创建该文件.我怀疑你目前没有调用其中一种WriteXXX方法.

另一个问题是,如果您没有限定路径,那么TIniFile将尝试在Windows目录中找到它,当然您没有权限在那里写.基于的底层API TIniFile是私人配置文件API,它已被长期弃用,执行非常糟糕,并且充满了奇怪的皱纹.该文件规定:

如果lpFileName参数不包含文件的完整路径和文件名,WritePrivateProfileString将在Windows目录中搜索该文件.如果该文件不存在,则此函数在Windows目录中创建该文件.

显然,你应该完全符合你的道路.

然而,我强烈建议您考虑使用TMemIniFile,而不是TIniFile因为TMemIniFile避免了专用配置文件API的所有缺陷.

如果你切换到TMemIniFile然后记得UpdateFile在销毁ini文件之前调用,因为这将把设置保存到磁盘.否则TMemIniFile是替代品TIniFile.