C# 所以我想我需要分开一根线

C# 所以我想我需要分开一根线,c#,.net,C#,.net,所以我有这个应用程序,它是我从一个早已离开的人那里继承来的。该应用程序的要点是,它读入一个.cvs文件,该文件中有大约5800行,然后将其复制到另一个.cvs上,每次都会在去掉一些内容后创建新的.cvs。好吧,一切都很好,或者直到一个月前。所以我开始检查它,到目前为止我发现电子表格中大约有131项缺失。现在我在某个地方读到,一个字符串可以保存的最大数据量超过100000000个字符,我的电子表格也在这一数字之下,大约800000个字符,但我唯一能想到的就是字符串对象 不管怎样,这是有问题的代码,

所以我有这个应用程序,它是我从一个早已离开的人那里继承来的。该应用程序的要点是,它读入一个.cvs文件,该文件中有大约5800行,然后将其复制到另一个.cvs上,每次都会在去掉一些内容后创建新的.cvs。好吧,一切都很好,或者直到一个月前。所以我开始检查它,到目前为止我发现电子表格中大约有131项缺失。现在我在某个地方读到,一个字符串可以保存的最大数据量超过100000000个字符,我的电子表格也在这一数字之下,大约800000个字符,但我唯一能想到的就是字符串对象

不管怎样,这是有问题的代码,这段代码出现了

要从现有字段读入并输出到新文件,请执行以下操作:

StreamReader s = new StreamReader(File);

//Read the rest of the data in the file.
string AllData = s.ReadToEnd();

//Split off each row at the Carriage Return/Line Feed
//Default line ending in most windows exports.
//You may have to edit this to match your particular file.
//This will work for Excel, Access, etc. default exports.
string[] rows = AllData.Split("\r\n".ToCharArray(), System.StringSplitOptions.RemoveEmptyEntries);

//Now add each row to the DataSet
foreach (string r in rows)
{
    //Split the row at the delimiter.

    string[] items = r.Split(delimiter.ToCharArray());

    //Add the item
    result.Rows.Add(items);
}

如果有人能帮助我,我将非常感激。我需要弄清楚如何更好地分割数据,或者我需要弄清楚它为什么要将现有excel文件中的最后131行剪切到新的excel文件。

一种更简单的方法,因为您使用的是
“\r\n”
行,只需使用内置的行读取方法:
file.ReadLines(path)


一种更简单的方法是使用内置的行读取方法:
File.ReadLines(path)


一种更简单的方法是使用内置的行读取方法:
File.ReadLines(path)


一种更简单的方法是使用内置的行读取方法:
File.ReadLines(path)


您可能希望签出该类,该类是
Microsoft.VisualBasic.FileIO
命名空间的一部分(是的,您可以将其与C#代码一起使用)

大致如下:

using(var reader = new TextFieldParser("c:\\path\\to\\file"))
{
    //configure for a delimited file
    reader.TextFieldType = FieldType.Delimited;

    //configure the delimiter character (comma)
    reader.Delimiters = new[] { "," };

    while(!reader.EndOfData)
    {
        string[] row = reader.ReadFields();
        //do stuff
    }
}

当字段可能包含分隔符时,此类可以帮助解决将行拆分为字段的一些问题。

您可能需要签出该类,该类是Microsoft.VisualBasic.FileIO命名空间的一部分(是的,您可以将其与C#代码一起使用)

大致如下:

using(var reader = new TextFieldParser("c:\\path\\to\\file"))
{
    //configure for a delimited file
    reader.TextFieldType = FieldType.Delimited;

    //configure the delimiter character (comma)
    reader.Delimiters = new[] { "," };

    while(!reader.EndOfData)
    {
        string[] row = reader.ReadFields();
        //do stuff
    }
}

当字段可能包含分隔符时,此类可以帮助解决将行拆分为字段的一些问题。

您可能需要签出该类,该类是Microsoft.VisualBasic.FileIO命名空间的一部分(是的,您可以将其与C#代码一起使用)

大致如下:

using(var reader = new TextFieldParser("c:\\path\\to\\file"))
{
    //configure for a delimited file
    reader.TextFieldType = FieldType.Delimited;

    //configure the delimiter character (comma)
    reader.Delimiters = new[] { "," };

    while(!reader.EndOfData)
    {
        string[] row = reader.ReadFields();
        //do stuff
    }
}

当字段可能包含分隔符时,此类可以帮助解决将行拆分为字段的一些问题。

您可能需要签出该类,该类是Microsoft.VisualBasic.FileIO命名空间的一部分(是的,您可以将其与C#代码一起使用)

大致如下:

using(var reader = new TextFieldParser("c:\\path\\to\\file"))
{
    //configure for a delimited file
    reader.TextFieldType = FieldType.Delimited;

    //configure the delimiter character (comma)
    reader.Delimiters = new[] { "," };

    while(!reader.EndOfData)
    {
        string[] row = reader.ReadFields();
        //do stuff
    }
}

当字段可能包含分隔符时,此类可以帮助解决将一行拆分为其字段的一些问题。

文件。ReadLines
如果您担心性能,并且不希望一次将整个文件存储在内存中,请不要忘了“数据”中可能包含逗号,因此您不希望这样解析它。使用一些已经构建的MyID1,“嗨,我的名字是abc”,其他一些数据,等等。。。你看到这里的问题了吧?我很喜欢你的代码改进。但我看不出它是如何回答这个问题的。他说,如果你在其中一个单元格的内容中有一个逗号,你可能会出错。这取决于你的数据。例如:
1,2,“chase,justin”,xyz,345
。在引用区域中出现逗号将被拆分,这将是一个问题。如果你没有这样的数据,那就不用担心了。否则,您可能需要在regex.or
File.ReadLines上拆分文件。如果您担心性能,并且不希望将整个文件一次性存储在内存中,请不要忘记“数据”中可能包含逗号,因此您不希望这样解析它。使用一些已经构建的MyID1,“嗨,我的名字是abc”,其他一些数据,等等。。。你看到这里的问题了吧?我很喜欢你的代码改进。但我看不出它是如何回答这个问题的。他说,如果你在其中一个单元格的内容中有一个逗号,你可能会出错。这取决于你的数据。例如:
1,2,“chase,justin”,xyz,345
。在引用区域中出现逗号将被拆分,这将是一个问题。如果你没有这样的数据,那就不用担心了。否则,您可能需要在regex.or
File.ReadLines上拆分文件。如果您担心性能,并且不希望将整个文件一次性存储在内存中,请不要忘记“数据”中可能包含逗号,因此您不希望这样解析它。使用一些已经构建的MyID1,“嗨,我的名字是abc”,其他一些数据,等等。。。你看到这里的问题了吧?我很喜欢你的代码改进。但我看不出它是如何回答这个问题的。他说,如果你在其中一个单元格的内容中有一个逗号,你可能会出错。这取决于你的数据。例如:
1,2,“chase,justin”,xyz,345
。在引用区域中出现逗号将被拆分,这将是一个问题。如果你没有这样的数据,那就不用担心了。否则,您可能需要在regex.or
File.ReadLines上拆分文件。如果您担心性能,并且不希望将整个文件一次性存储在内存中,请不要忘记“数据”中可能包含逗号,因此您不希望这样解析它。使用一些已经构建的MyID1,“嗨,我的名字是abc”,其他一些数据,等等。。。你看到这里的问题了吧?我很喜欢你的代码改进。但我看不出它是如何回答这个问题的。他说,如果你在其中一个单元格的内容中有一个逗号,你可能会出错。这取决于你的数据。例如:
1,2,“chase,justin”,xyz,345
。存在