从文本文件C#中读取特定数据

时间:2016-12-20 01:33:01

标签: c# text-files data-manipulation

缺乏知道如何读取正在输入文本文件的数据,这是我到目前为止所拥有的

try
{

    StreamReader sr = new StreamReader(@"C:\\Program Files (x86)\\Python Data\\Rolldata.txt");

    line = sr.ReadLine();
    while (line != null)
    {
        Console.WriteLine(line);
        textBox1.Text = line;
        line = sr.ReadLine();
    }

    sr.Close();
    Console.ReadLine();

}

这只是简单地提取数据并将其放到一个写入线上,这样我就可以实际看到它,但是如何以特定数据对(如{id: 1}或{{1})的方式解析数据只能用他们特定的附加数据读取?

由于要求,我将详细说明并显示数据

{foobar:foobar}

我想提取id和roll并尽可能将它们组合在一起

2 个答案:

答案 0 :(得分:0)

我觉得它很方便File.ReadAllText喜欢

string YourTextFileContent = File.ReadAllText(@"C:\\Program Files (x86)\\Python Data\\Rolldata.txt");
Console.WriteLine(YourTextFileContent);

您可以发布文件内容和预期输出以成对读取数据。鉴于SplitRegex将帮助您阅读此类数据,但我认为您的字符串可能是JSON字符串,因此获取数据可能更容易。

答案 1 :(得分:0)

您的数据看起来像json格式,但有一点语法问题。

首先我建议您参考http://www.json.org/ 并修复您的数据

[
    { 
        'updated_at': '2016-12-20', 
        'roll': 3, 
        'hash': 'f114b7a0fd714256015b5a420ebe974f3977c53d3a3423f8532b58b69a6f3aa5', 
        'state': 3, 
        'created_at': '2016-12-20', 
        'id': 9947837
    },
    { 
        'updated_at': '2016-12-20', 
        'roll': 9, 
        'hash': '4e2a94657c9ca2c9206369d64fb84b03520875f870389bee1604fa4f74ef0cfa', 
        'state': 3, 
        'created_at': '2016-12-20', 
        'id': 9947838
    },
    { 
        'updated_at': '2016-12-20', 
        'roll': 0, 
        'hash': 'd5dc5c3378724deb071ae6bdaa0cfb05222db68e4afc441d9138f0e84609fc4c', 
        'state': 3, 
        'created_at': '2016-12-20', 
        'id': 9947839
    }
]

其次,为你的json

创建一个C#类
public class PropertiesYouWant
{
    public int roll { get; set; }
    public int id { get; set; }
}

最后,使用Newtonsoft.Json反序列化json字符串,如下所示

var result = JsonConvert.DeserializeObject<List<PropertiesYouWant>>(@"json above");

结果应该是您想要的集合。