crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Непонятный нюанс while(!atEnd()), не доходит до конца файла
NordWest
  опции профиля:
сообщение 29.9.2010, 11:37
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 86
Регистрация: 26.11.2008
Пользователь №: 433

Спасибо сказали: 1 раз(а)




Репутация:   0  


Сейчас в конкретном примере показать не смогу, но пару раз встречался. Вобщем то в том и дело, что снова пишу подобный код и не могу вспомнить правильный вариант.
Ситуация такая. Построчное считывание из текстового файла. Код примерно такой:

CODE
QFile pnFile(plnFileName);
pnFile.open(QIODevice::ReadOnly | QIODevice::Text);
QTextStream pnStream(&pnFile);

while(!pnStream.atEnd())
{
...
}


В цикле происходит считывание из pnStream текстовых строк. Проблема в том, что иногда цикл завершается на половине файла. И зависит это от того, что стоит в while. В примере один случай, а можно написать while(!pnFile.atEnd()). И в одном из вариантов будет всё в порядке, а в другом нет и файл не будет считан до конца. Может быть я каких-то нюансов не учёл, а они важны. Я это случайно заметил, когда обнаружил уж очень большую недостачу данных. Может тут какое-то явное правило существует?..

Сообщение отредактировал NordWest - 29.9.2010, 11:45
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Litkevich Yuriy
  опции профиля:
сообщение 29.9.2010, 16:21
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(NordWest @ 29.9.2010, 17:59) *
Т.е. вообще по QString определять?
что определять?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 21.12.2024, 13:23