好的...
首先,FileStream 和相关的 StreamReaders 将允许您以几乎任何您想要的格式读取文件。这很重要,因为您的特定算法将决定检索方法。
归结起来,您想从文件中读取字符,当该字符是数字时,将其存储在寄存器中,以这种方式继续,直到寄存器中有五个数字字符。然后,您将执行一些逻辑,导致第一个数字不再有用,因此您将其截断并获取下一个值。
这些方面的东西怎么样?
var register = new StringBuilder();
using(var stream = File.Open("File1.txt"))
{
bool ended, fileEnded;
int buffer;
while(!ended)
{
while(register.Length < 5 && !fileEnded)
{
buffer = stream.ReadByte();
if(buffer == -1)
{
fileEnded = true;
break;
}
var myChar = (char)buffer;
if(Char.IsNumber(myChar))
StringBuilder.Append(myChar);
}
//at this point you have 5 characters in register (or have run out of file).
//perform your logic, then remove the front character
register.Remove(0,1);
//repeat the loop. You won't get any more new characters once you reach the end of file,
//but the main loop will keep running until you set ended to true
if(WereDone())
ended=true;
}
stream.Close();
}
您还可以将整个文件读入一个字符串变量,然后应用一个查找数字字符的正则表达式,将它们连接到一个大缓冲区中,然后从中填充您的寄存器。对于小文件来说,这是一种更好的方法,但这种方法适用于任何文件大小。