将特定的一组行从平面文件移动到另一个

时间:2015-10-28 13:59:05

标签: c# header-files

我正在尝试使用c#将文件的内容转储到另一个文件中。不是整个内容,而只是特定的一组行。我把文件读成数组。

现在我要做的是想要删除一定数量的行,比如总共50行文件,前10行和后20行将被排除。

我的代码看起来像

System.IO.StreamWriter file = new System.IO.StreamWriter(@"C:\manoj\File.txt");
string[] lines = System.IO.File.ReadAllLines(@"C:\manoj\sample.txt");
for (i = 10; i <= 30; i++)
   {
       foreach(string line in lines)
       {
           file.writeline(line[i]);
       }
   }

索引超出数组范围是我得到的错误。

有人可以告诉我吗?

2 个答案:

答案 0 :(得分:0)

您正在访问文件的每一行,从10日到30日访问每个字符。 在包含少于30个字符的第一行,程序会引发您得到的错误

答案 1 :(得分:0)

您不应该使用遍历文件中的行的循环来嵌套计数为30的循环。试试这个

var total_lines = lines.Count;
var linecount = 0;
foreach(string line in lines) {   
    linecount ++;
    if (linecount >= 10 || linecount <= total_lines - 20) {
        file.writeline(line);
    }
}

这使用linecount变量来计算您的行数,然后根据该变量的值有选择地输出。