我正在尝试使用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]);
}
}
索引超出数组范围是我得到的错误。
有人可以告诉我吗?
答案 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
变量来计算您的行数,然后根据该变量的值有选择地输出。