Собственно говоря, просто портировал удобную процедуру из паскаля, суть которой заключался в том, что из потока (файла) считывались целые числа.
static void Read(StreamReader f, out int x)
{
x = int.MinValue;
try
{
x = Convert.ToInt32(read_lexem(f));
}
catch (Exception Exception) { Console.WriteLine(Exception); }
}
static string read_lexem(StreamReader f)
{
Char c;
Int32 i;
StringBuilder sb;
// Пропускаем пробелы
do
{
i = f.Read();
}
while (Char.IsWhiteSpace((char)i));
c = (char)i; // pascal: c := char(i);
sb = new StringBuilder();
// accumulate nonspaces
do
{
sb.Append(c);
i = f.Peek();
if (i == -1) break;
c = (char)i;
if (Char.IsWhiteSpace(c)) break;
f.Read();
}
while (true);
return sb.ToString();
}