【问题标题】:Check the IniFile descriptor is open检查 IniFile 描述符是否打开
【发布时间】:2013-07-04 04:05:44
【问题描述】:

我有一个小应用程序,它将其设置存储在 INI 文件中。当另一个表单打开时,我关闭 INI 文件描述符:

procedure TIndexForm.startButtonClick(Sender: TObject);
var
  workForm : TForm;
begin

  workForm := TworkingForm.Create(nil);
  workForm.Show();

  configIni.Free; // freeing IniFile desciptor
  IndexForm.Hide();

end;

我如何检查描述符是否仍然打开?像这样(代码不起作用):

if not Assigned configIni then
  configIni := TIniFile.Create(configPath);

提前致谢。

【问题讨论】:

  • 为什么不根据需要访问 INI 文件?即,只需创建/释放足够长的时间以读取/写入而不是一直保持打开状态?
  • Assigned 检查指针是否为 nil,因此当您释放 configIni 变量时,您还必须将值设置为 nil。

标签: windows delphi file-descriptor


【解决方案1】:

欢迎您使用Assigned,但它不会检查变量是否引用了有效的对象实例。 什么都不做。 相反,Assigned 只是检查变量是否为空。要进行有效检查,请在释放它所引用的对象时将变量设为 null:

configIni.Free;
configIni := nil;

您可以根据需要使用FreeAndNil 辅助函数;它的作用与我上面写的差不多。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-24
    • 2013-11-08
    • 2010-10-27
    • 1970-01-01
    • 2021-05-08
    • 1970-01-01
    • 2018-05-10
    • 2011-01-31
    相关资源
    最近更新 更多