我有一个字符串模式,必须从文件的第二行到第207行覆盖。
目前我有this method来覆盖整个模式中的每个0,1或空格(每行有207行,每行3000个)。
using (var fileStream = File.Open(filePath + fileName, FileMode.OpenOrCreate, FileAccess.Write))
{
var minLength = Math.Min(pattern.Length, fileStream.Length);
Console.WriteLine("Started overwriting file " + fileName);
for (var i = 0; i < minLength; i++)
{
fileStream.Position = i;
if (pattern[i] == '0')
{
fileStream.WriteByte(byteCharZero);
}
else if (pattern[i] == '1')
{
fileStream.WriteByte(byteCharOne);
}
else if (pattern[i] == ' ')
{
fileStream.WriteByte(byteCharSpace);
}
}
}
这种方法就像一个魅力,直到第110行。然后它跳回一个空间,在第161行,它再次做同样的事情。这样,模式就不在正确的位置。
我不知道为什么会这样,但我会以另一种方式解决问题:
现在我想用一行包含一个字符串模式覆盖第二行到第207行。如何在上述方法中完成覆盖单独的linse?
答案 0 :(得分:1)
你在谈论“线”,所以要检查的第一件事就是行尾。也许,线路终端通常是CRLF,除了近线161,它只是CR或LF?一个不同的行结束肯定会说明一个接一个。