Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > Перезапись файла


Автор: Riviero 29.8.2012, 10:10
Код

QFile file;
file.setFileName("1.txt"); 
file.open(QIODevice::WriteOnly | QIODevice::Truncate);
file.write(/*что-то пишем*/);
file.close ();


При первом запуске - очищает файл и записывает туда текст, при повторном вызове записывает в конец. Почему Truncate не выполняется, или он для файлов не работает?

Автор: borisbn 29.8.2012, 10:12
попробуй этот QIODevice::Truncate вообще убрать. д.б. только QIODevice::WriteOnly для создания нового файла.

Автор: Riviero 29.8.2012, 10:16
Цитата(borisbn @ 29.8.2012,  10:12)
попробуй этот QIODevice::Truncate вообще убрать. д.б. только QIODevice::WriteOnly для создания нового файла.

Пробовал, пишет в конец. Придется удалять перед записью, думал что без этого можно как-то обойтись.
Код

Qfile::remove(file);

Автор: bsa 29.8.2012, 10:27
Riviero, у тебя точно close выполняется в первом случае? И кстати, проверяй результат выполнения операции open

Автор: Riviero 29.8.2012, 10:54
Все работает. Перезаписывает c QIODevice::Truncate и только с одним параметром QIODevice::WriteOnly, ошибка в другом месте была(

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)