わかった...
まず、FileStreamと関連するStreamReaderを使用すると、ファイルからほぼすべての形式で読み取ることができます。特定のアルゴリズムが取得方法を決定するため、これは重要です。
要約すると、ファイルから文字を読み取り、その文字が数字の場合はレジスタに格納し、レジスタに5つの数字が入るまでこの方法を続けます。次に、最初の数値が役に立たなくなるロジックを実行するので、それを切り捨てて次の値を取得します。
これらの線に沿った何かはどうですか?
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();
}
また、ファイル全体を文字列変数に読み込んでから、数値文字を検出する正規表現を適用し、それらを大きなバッファーに連結して、そこからレジスターを埋めることもできます。これは小さなファイルにはより良いアプローチですが、これはどのファイルサイズでも機能します。