文本文件作为配置文件。

4
我发现有些应用程序使用.txt文件作为配置文件。
这些文件看起来像这样:
[[plugin.save]]=[[保存]]
我该如何在C#中使用它?
我该如何读取文件并将[]中的值作为配置值传递给我的应用程序?

可能只需在应用程序开始时创建某种配置类,通过正则表达式解析填充它。然后使其可访问到您需要的地方(可能使用某些静态类)。 - Glubus
我如何使用正则表达式读取它? - Asaf Shazar
在谷歌上搜索正则表达式,有很多教程可以学习。然后再搜索如何使用正则表达式从文件中解析文本,就完成了! - Glubus
看到这种格式,让我想起了Ini文件。这个链接可能是一个好的起点:http://www.codeproject.com/Articles/1966/An-INI-file-handling-class-using-C - Irwene
2个回答

5

您需要将其作为常规文件进行读取。读取时使用字典来存储值。 示例代码:

        Dictionary<string, string> configuration = new Dictionary<string, string>();

        Regex r = new Regex(@"\[\[(\w+)\]\]=\[\[(\w+)\]\]");

        string[] configArray = {"[[param1]]=[[Value1]]", "[[param2]]=[[Value2]]"};// File.ReadAllLines("some.txt");

        foreach (string config in configArray)
        {
             Match m = r.Match(config);
            configuration.Add(m.Groups[1].Value, m.Groups[2].Value);
        }

请注意检查可能的空值。 还要注意,如果配置值可以包含空格,则正则表达式应该不同。

抱歉?我正在使用常规文件读取,但是如何使用字典呢? 静态字典<string, string> Language = new Dictionary<string, string>();使用(StreamReader sr = new StreamReader(@"." + Langua)) { string line; while ((line = sr.ReadLine()) != null) } - Asaf Shazar

5

只需使用:

var config = File.ReadAllLines(FileLocation)

然后用解析工具解析它。
String.Split()

也可以使用正则表达式。


谢谢你的建议,但是正则表达式更容易。 我知道如何轻松使用正则表达式,但我认为使用正则表达式不正确。所以我问问有没有其他方法。 - Asaf Shazar
3
正则表达式明显是过度设计,按照等号字符(=)拆分行似乎是最实用的方式。 - Irwene

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接