从文本文件中获取参数

时间:2011-03-02 22:37:35

标签: c#

我有一个C#asp.net页面,必须从文本文件中获取用户名/密码信息。

有人可以告诉我怎么做。

文本文件如下所示:(它实际上要大得多,我只有几行)

DATASOURCEFILE=D:\folder\folder
var1= etc
var2= more
var3 = misc
var4 = stuff
USERID = user1
PASSWORD = pwd1

我需要的只是该文件中的UserID和密码。

感谢您的帮助,

史蒂夫

4 个答案:

答案 0 :(得分:10)

这样可行:

var dic = File.ReadAllLines("test.txt")
              .Select(l => l.Split(new[] { '=' }))
              .ToDictionary( s => s[0].Trim(), s => s[1].Trim());

dic是一本字典,因此您可以轻松提取您的值,即:

string myUser = dic["USERID"];
string myPassword = dic["PASSWORD"];

答案 1 :(得分:2)

打开文件,在换行符上拆分,然后在每个项目的=上再次拆分,然后将其添加到字典中。

string contents = String.Empty;
using (FileStream fs = File.Open("path", FileMode.OpenRead))
using (StreamReader reader = new StreamReader(fs))
{
    contents = reader.ReadToEnd();
}

if (contents.Length > 0)
{
    string[] lines = contents.Split(new char[] { '\n' });
    Dictionary<string, string> mysettings = new Dictionary<string, string>();
    foreach (string line in lines)
    {
        string[] keyAndValue = line.Split(new char[] { '=' });
        mysettings.Add(keyAndValue[0].Trim(), keyAndValue[1].Trim());
    }

    string test = mysettings["USERID"]; // example of getting userid
}

答案 2 :(得分:0)

您可以使用正则表达式来提取每个变量。您可以一次读取一行,也可以将整个文件读取为一个字符串。如果是后者,您只需在表达式中查找换行符。

此致 的Morten

答案 3 :(得分:0)

不需要字典。 老式解析可以做得更多,可执行代码更少,编译数据量相同,处理更少:

via_mobile