【问题标题】:C# equivalent of Delphi's .INI-reading methods [duplicate]C# 等效于 Delphi 的 .INI 读取方法 [重复]
【发布时间】:2012-01-16 04:10:24
【问题描述】:

可能重复:
Reading/writing INI file in C#

有哪些方法或 C# 库可以执行以下操作?谢谢

   //Delphi read item in a given  section of a binary file.
   uses iniFiles; 
   readString('SectionName','itemName','DefaultValueIfNotFound');

【问题讨论】:

  • 使用 System.Configuration 类
  • 当你迁移到 .NET 时,最好把 *.ini 留在后面。
  • 使用 app.config 和 web.config 文件将允许更多的功能、权力和控制你甚至可以加密 app.config 文件的部分它不是很难学习使用.. 我有编码 Delphi 17 年,我很容易学会了 .NET。请记住,为 Microsoft 编写 C#.NET 的人为 Borland 编写了 Delphi,因此您应该能够非常迅速地适应交叉。
  • 请注意:您的评论引用了“二进制”文件,但 INI 文件不是“二进制”(它是文本)。此外,您的代码片段完全无效;您没有声明或创建TIniFileTMemIniFile 的实例,也没有在对ReadString 的调用中引用一个实例。
  • 讽刺的是,在我看到这个之前,我想知道完全相同的主题,但我有充分的计划在问任何问题之前调查谷歌。此外,INI 文件不是 Delphi 特有的,所以真正的问题是如何在 C# 中使用 INI 文件。

标签: c# delphi


【解决方案1】:

框架中没有用于直接读取 INI 文件的类,因为它们现在并不是一个好的选择。相反,通常建议您使用Application Settings infrastructure 或其他更灵活的技术,例如将信息保存在 XML 文件或数据库中。

但是,许多人已经编写了自己的库,例如 this one on CodeProject,它可以让您轻松地从 C# 中的 ini 文件的一部分中读取值。

【讨论】:

【解决方案2】:

如果你真的必须使用这个 pinvoke 方法。

http://pinvoke.net/default.aspx/kernel32.GetPrivateProfileString

INI 文件是旧文件,不建议 Microsoft 使用。

【讨论】:

    【解决方案3】:

    虽然与使用 Delphi 的 TIniFile 不完全相同,但我发现开源的 Nini library 运行良好。

    这是使用 Nini 读取 INI 文件的example

    ; MyApp.ini
    [Logging]
    File Name = MyApp.log
    MessageColumns = 5
    MaxFileSize = 40000000000000
    

    下面是一段 C# 示例代码,描述了如何从上面的文件中访问 INI 文件中的配置数据:

    using Nini.Config;
    IConfigSource source = new IniConfigSource("MyApp.ini");
    
    string fileName = source.Configs["Logging"].Get("File Name");
    int columns = source.Configs["Logging"].GetInt("MessageColumns");
    long fileSize = source.Configs["Logging"].GetLong("MaxFileSize");
    

    【讨论】:

      猜你喜欢
      • 2011-10-13
      • 1970-01-01
      • 2021-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多