是否有一个读写.properties文件的Delphi库?

时间:2009-02-07 15:52:16

标签: delphi properties

我考虑创建自己的,但有许多细节要考虑使它与Java .properties文件100%兼容,所以我先问。

2 个答案:

答案 0 :(得分:4)

曾经有一个名为Gel的Java IDE。它是用Delphi编写的,它是一个很好的IDE,所以我希望它能够处理属性文件。作者已停止该项目的工作。在他的blog post describing the project's cancellation中,他提到对项目开源的前景持开放态度,但它从未真正起飞过。如果你问得很好,你可能会得到你正在寻找的那部分代码。

对您发现的任何使用TStrings接口的解决方案持怀疑态度。虽然该类具有NamesValues属性,使其作为使用键/值对的类具有吸引力,但它与Java的属性文件不完全兼容。原因是Java允许“=”作为键名中的字符,TStrings类通过查找字符串中的第一个“=”字符来检测名称的结尾和值的开头。此外,Java属性文件可以使用“:”作为分隔符,它们甚至可以使用普通的空格。

答案 1 :(得分:0)

不是Java人,而是我所看到的.properties文件与伪装的.INI文件类似;它有名称=值对,没有节名。您可以使用Delphi的TStringList来处理它;它具有名称和值属性。

例如,要从.properties文件中读取以下行:

MyProgramData=c:\documents and settings\DR\Application Data\MyApp

我可以简单地使用:

var
  SL: TStringList;
  MyDataPath: string;
begin
  SL :=  TStringList.Create;
  try
    SL.LoadFromFile('myapp.properties');
    MyDataPath := SL.Values['MyProgramData'];
  finally
    SL.Free;
  end;
  // Do something with MyDataPath
end;

对于过于迂腐的读者,我并不是说TStringList会允许你使用.properties文件的全部功能;然而,可能足以满足您的需求。 (正如我所说,我不是一个Java人。)