gpt4 book ai didi

c# - 读取带有分隔符的 INI 文件部分到数组

转载 作者:太空宇宙 更新时间:2023-11-03 23:36:18 24 4
gpt4 key购买 nike

我正在尝试将我的 C++ 代码转换为 Visual C#。我的目标是能够读取包含某些部分的 INI 文件(不是 XML 文件!)。每行分配给一个按钮,每个按钮启动一个命令。每个 INI 行有 4 个值,用“;”分隔。

例如:

[Button_section1]

Button1=Button Scenario;open;notepad;/a;scenario.txt

意思是:

  • 列表项
  • Button1 : 按钮的真实名称
  • 按钮场景:按钮的文本(隐藏名称)
  • 打开:初始命令(也可以是打印或浏览...
  • 记事本:可执行文件(可以是任何文件或 CMD,例如)
  • /a : 第一个参数
  • scenario.txt : 第二个参数

所以,在我之前的代码中,我有 25 个方法 ReadSectionStringSepare,它们能够读取我的 INI 文件的每个部分,然后用 StringSepare 方法

加载表单时,可以从 INI 文件中显示按钮文本,如下所示

Button bt = (Button)this.Controls.Find(i, true)[0];

然后单击按钮允许启动以下命令:(本例打开)-> notepad/a scenario.txt

注意事项:我不想使用任何 XML 文件,因为我有一个与我的 SQL BD 的链接,该链接被解释为 CSV 文件。事实上,它是一个 CSV 文件,包含 sections.,..

最佳答案

我也想插入我自己的 ini-parser 库 https://github.com/rickyah/ini-parser

您可以使用 NuGet 安装它,支持 Mono 并且它是 MIT 许可的,而且非常易于使用

// Load INI file from path, Stream or TextReader.
var p = new FileIniDataParser();

// ; is also the default comment string, you need to change it
p.Parser.Configuration.CommentString = "//";

// Load the file
IniData parsedData = parser.LoadFile("TestIniFile.ini");

// your information
var buttonData = parsedData["Button_section1"]["Button1"].Split(new {}[";"])

如果您想收集有关每个按钮的数据,您可以直接访问部分和部分中的键:

foreach(SectionData section in parsedData.Sections)
foreach(KeyData key in section.Keys)

希望它对你有用,如果你有任何改进,我接受 PR ;)

关于c# - 读取带有分隔符的 INI 文件部分到数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30461538/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com