Строка чтения в SR и доступ к последней строке с индексом -1 - PullRequest
1 голос
/ 18 июня 2019

Я пишу atm, инструмент для чтения потоков, и у меня возникла следующая проблема. Я прочитал строку с помощью ReadLine (); Затем поток продолжается со следующей строки. Но мне нужна информация о последнем символе (особенно если это NewLine или Linefeed) из строки до.

Это мой подход:

Я пробовал несколько подходов, с readblock или около того. Но похоже, что сам поток не позволяет мне вернуться в исходное положение, разобрать нужные мне элементы.

off = 0;
FileStream stream = new FileStream(filename, FileMode.Open);
using (StreamReader content = new StreamReader(stream, Encoding.UTF8))
{
    String s = "";
    while ((s = content.ReadLine()) != null)
    {
        content.BaseStream.Seek((a == 0)? off: off - 1, SeekOrigin.Begin);
        //content.BaseStream.Seek(off, SeekOrigin.Current);
        var c=content.Peek();
        char b = (char)c;
        data = s;
        maxlist.Add(data.Length);
        if (data != null)
        {
              offset = offset + (data.Length)+2;
              offsetindex.Add(offset);
        }
        a++;
        off = off + data.Length - 2;
    }
    content.Close();
}

Ожидаемый вывод должен быть таким, чтобы я мог получить доступ к строке выше после вызова Readline. Так что я могу читать с помощью ReadBlock последние элементы, которые мне нужны для точного позиционирования в потоке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...