CFile и CStdioFile Чтение по одному байту за раз

Используя C ++ MFC с Visual Studio 2008, я пытаюсь использовать CFile или CStdioFile, чтобы прочитать в последней строке текстового документа, сохранить его, а затем перепечатать его после того, как в файл был добавлен текст.

Я получил, что эта часть работает, единственная проблема в том, что она не динамическая, вы должны вручную создать offSet для того, насколько длинной будет последняя строка. Поэтому я пытаюсь создать функцию, которая читает последнюю строку, пока не найдет общий элемент во всех файлах, с которыми будет работать, и посчитает, сколько там было байтов. Вот что у меня сейчас для этого:

int MeasureLastTag(CStdioFile* xmlFile)
{
TCHAR lastTag[1];
CString tagBracket = _T("");
xmlFile->Seek(0, CFile::end);
int count = 0;

while(tagBracket != _T("<"))  //Go back two, read ahead one
{
xmlFile->Seek(-2, CFile::current);
xmlFile->Read(lastTag, 1);
tagBracket = lastTag;
count++;
}

return count;
}

Однако это вызывает бесконечный цикл, который я не могу поколебать. Есть идеи, как заставить это работать?

Дополнительная информация, это образец файла.

<Station>
</Station>

Я хочу это прочитать < / Station> пока не доберется до <считая по пути.

0

Решение

Изменение TCHAR lastTag [1] на char lastTag [1] решило проблему.

0

Другие решения


По вопросам рекламы ammmcru@yandex.ru
Adblock
detector