从表单中的txt文件中读取参数,跳过空行

时间:2015-09-16 08:55:18

标签: c# forms

我必须从txt文件中读取一些参数,然后在我的Windows窗体应用程序中使用它们。

txt文件如下所示:

[Parameter1]
1
[Parameter2]
1000
[Parameter3]
5
[Parameter4]
0

我一直在互联网上寻找合适的解决方案,但没找到。关键是要实现这些要点:
1.可以有空行(例如txt文件中1和[Parameter2]之间有5个空行,应用程序无论如何都需要加载这些参数。
2.如果txt文件错过了这些参数中的任何一个,应用程序需要加载现有的参数,然后我将使用默认值对丢失的参数进行归属。

我的应用中的代码:

if (File.Exists("path.txt"))
{
    FileStream fs = new FileStream("path.txt", FileMode.Open);
    StreamReader sr = new StreamReader(fs);
    string linia;
    while ((linia = sr.ReadLine()) != null)
    {
        string a = string.Empty;
        string b = string.Empty;
        string c = string.Empty;
        string LogLevelstring = string.Empty;

        if (string.Compare(linia, "[Parameter1]") == 0)
            a = sr.ReadLine();
        if (string.Compare(sr.ReadLine(), "[Parameter2]") == 0)
            b = sr.ReadLine();                          
        if (string.Compare(sr.ReadLine(), "[Parameter3]") == 0)
            c = sr.ReadLine();
        if (string.Compare(sr.ReadLine(), "[Parameter4]") == 0)
            LogLevelstring= sr.ReadLine();
    }
    fs.Close();
    sr.Close();
}

此功能逐行加载。当.txt文件正确时,它可以正常工作,但是当它有上面指出的任何内容时,它都无法正常工作。

非常感谢任何帮助和代码示例。谢谢!

1 个答案:

答案 0 :(得分:0)

您还可以使用Regex类尝试使用Regular Expresions来过滤每一行。它可以缩短你的代码很多。如果您需要帮助来构建正则表达式,请尝试使用以下网站:https://regex101.com/

希望这会有所帮助:D 碧玉。