Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将多行文本文件解析为多个变量_C#_Asp.net_.net_Parsing_Text Files - Fatal编程技术网

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

C# 将多行文本文件解析为多个变量,c#,asp.net,.net,parsing,text-files,C#,Asp.net,.net,Parsing,Text Files,我有点被一个特殊的问题困住了。我在.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”。对于其余部分,每行中的每一个数字都应该是它自己的变量,这就是我被卡住的

我有点被一个特殊的问题困住了。我在.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
-语句来确保即使出现错误,所有非托管资源也会被释放属性。

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
-语句来确保即使出现错误,所有非托管资源也会被释放属性。

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
-语句来确保即使出现错误,所有非托管资源也会被释放属性。

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
-语句来确保即使发生错误,所有非托管资源也会被释放。

将ReadLine放入一个loopPut ReadLine放入一个loopPut ReadLine放入一个loopPut ReadLine放入一个loopPut ReadLine放入一个loopI我理解这个循环-这是否意味着第一行是lineInfo[0],下一行是lineInfo[1]等等,获取变量的最佳方法是获取每行的子字符串?@user2697262:No
line.Split(“”)
将每行拆分为块,其中每个标记都是行中的一个“字”(因为您是按空格拆分的)。因此,您可以通过
lineInfo
的索引器访问每个列/字。循环只是迭代文件中的每一行。如果要以相同的方式访问它,则需要将所有内容加载到内存中,例如使用
File.ReadAllLines(path)
。返回的数组已包含文件中的所有行。我遇到了一个问题:CS1519:在类、结构或接口成员中“使用”无效令牌declaration@user2697262:那么您应该告诉我们是什么代码导致了这种情况。也许你想问一个不同的问题来解决这个问题。我已经取得了相当大的进步。我得到的最后一个错误是“文件错误:System.IndexOutOfRangeException:索引超出了数组的边界”。它在lineInfo[1]上失败,我不明白为什么。我理解循环-这是否意味着第一行是lineInfo[0],下一行是lineInfo[1]等等,获取变量的最佳方法是获取每行的子字符串?@user2697262:No
line.Split(“”)
将每行拆分为块,其中每个标记都是行中的一个“字”(因为您是按空格拆分的)。因此,您可以通过
lineInfo
的索引器访问每个列/字。循环只是迭代文件中的每一行。如果要以相同的方式访问它,则需要将所有内容加载到内存中,例如使用
File.ReadAllLines(path)
。返回的数组已包含文件中的所有行。我遇到了一个问题:CS1519:在类、结构或接口成员中“使用”无效令牌declaration@user2697262:那么您应该告诉我们是什么代码导致了这种情况。也许你想问一个不同的问题来解决这个问题。我已经取得了相当大的进步。我得到的最后一个错误是“文件错误:System.IndexOutOfRangeException:索引超出了数组的边界”。它在lineInfo[1]上失败,我不明白为什么。我理解循环-这是否意味着第一行是lineInfo[0],下一行是lineInfo[1]等等,获取变量的最佳方法是获取每行的子字符串?@user2697262:No
line.Split(“”)
将每行拆分为块,其中每个标记都是行中的一个“字”(因为您是按空格拆分的)。因此,您可以通过
lineInfo
的索引器访问每个列/字。循环只是迭代文件中的每一行。如果要以相同的方式访问它,则需要将所有内容加载到内存中,例如使用
File.ReadAllLines(path)
。返回的数组已包含文件中的所有行。我遇到了一个问题:CS1519:在类、结构或接口成员中“使用”无效令牌declaration@user2697262:那么您应该告诉我们是什么代码导致了这种情况。也许你想问一个不同的问题来解决这个问题。我已经取得了相当大的进步。我得到的最后一个错误是“文件错误:System.IndexOutOfRangeException:索引超出了数组的边界”。它在lineInfo[1]上失败,我不明白为什么。我理解循环-这是否意味着第一行是lineInfo[0],下一行是lineInfo[1]等等,获取变量的最佳方法是获取每行的子字符串?@user2697262:No
line.Split(“”)
将每行拆分为块,其中每个标记都是行中的一个“字”(因为您是按空格拆分的)。因此,您可以通过
lineInfo
的索引器访问每个列/字。这个