繁体   English   中英

将多行文本文件解析为多个变量

[英]Parse Multiline Text File into Multiple Variables

我对一个特定的问题有些困惑。 我正在.NET中工作,需要将多行文本文件解析为多个变量。 到目前为止,据我所知,我已经读了第一行。 文本文件如下所示:

1/10/2014 1,2,3
1 0 0
1 1 0
1 2 0
1 3 0
1 4 0
1 5 0
1 6 0
1 7 0
1 8 0

这是我的第一行代码的样子-应该拉出日期(现在,它不是拉出日期,今天是分配的)和“ 1,2,3”,然后用空格替换逗号为“ 1 2 3”。 对于其余部分,每行中的每个数字应该是其自己的变量,这就是我要坚持的地方。 我只需要为每个后续行选择前导“ 1”一次作为一个变量(它将始终为0或1),并且每个数字中的第二个数字是层号(这些数字始终为0-8),并且每行中的最后数字(现在都为“ 0”)都是单独的变量,并且会有所不同。

string filePath = ConfigurationSettings.AppSettings["FileName.txt"];
StreamReader reader = null;
FileStream fs = null;
fs = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
reader = new StreamReader(fs);
string line = null;
line = reader.ReadLine();
string[] lineInfo = line.Split(' ');
string NumbersTemp = lineInfo[1];
string numbers = NumbersTemp.Replace(","," ");
string date = DateTime.Today.ToString("MM/dd/yyyy");

如您所见,我对变量的了解还不是很远,我甚至不确定它是否能按照目前的方式正常工作。 它没有出错,但是还不完整。 任何帮助安排这些变量的方法将不胜感激。

StreamReader.ReadLine读取一行。 您只使用一次。 使用循环:

string date = DateTime.Today.ToString("MM/dd/yyyy");
string filePath = ConfigurationSettings.AppSettings["FileName.txt"];
using (var fs = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
using(var reader = new StreamReader(fs))
{
    string line;
    while ((line = reader.ReadLine()) != null)
    {
        string[] lineInfo = line.Split(' ');
        string NumbersTemp = lineInfo[1];
        string numbers = NumbersTemp.Replace(",", " ");
        // ...
    }
}

我还使用using -statement来确保即使在发生错误的情况下,所有非托管资源都可以被处置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM