Используя 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> пока не доберется до <считая по пути.
Изменение TCHAR lastTag [1] на char lastTag [1] решило проблему.