Название: QFile::size() возвращает ноль Отправлено: ieroglif от Май 24, 2010, 17:04 Ничего не понимаю - обычный файл с диска. ничем не занят (никакой другой процесс к файлу не обращается).
Делаю наследника от QFile соответсвенно: Код
и есть ещё один вопрос =) как писать в начало файла сдвигая имеющуюся в нём информацию? prepend, в общем =) закатывать весь файл в память что бы там запрепендить и закинуть обратно - долго как-то.. могут быть очень больших размеров файлы. Название: Re: QFile::size() возвращает ноль Отправлено: kibsoft от Май 24, 2010, 17:27 Ты уверен что файл открылся? Попробуй так:
Код: qDebug()<<this->open(QIODevice::ReadOnly); Насчет препенда сложно сказать.. как-то двигать данные все равно придется.. Название: Re: QFile::size() возвращает ноль Отправлено: ieroglif от Май 24, 2010, 19:33 спасибо, вопрос с нолевым размером решён - моя дурость и программанье в 3 часа ночи - переопределил метод size() и поставил там тестом возврат нуля.
вопрос с препендом остался =) Название: Re: QFile::size() возвращает ноль Отправлено: lit-uriy от Май 24, 2010, 20:57 >>вопрос с препендом остался
создать временный файл, писать в него (по сути prepend). По окончании записи, открыть имеющийся и весь записть в конец временного. Оба закрыть, старый удалить а новый переименовать в старое имя Название: Re: QFile::size() возвращает ноль Отправлено: Igors от Май 24, 2010, 21:01 и есть ещё один вопрос =) Никак, можно только крутиться с 2-мя файлами как предложил Юра. Часто также пишут файл chunk'ами, чтобы данные могли следовать в любом порядке.как писать в начало файла сдвигая имеющуюся в нём информацию? prepend, в общем =) закатывать весь файл в память что бы там запрепендить и закинуть обратно - долго как-то.. могут быть очень больших размеров файлы. |