Russian Qt Forum
Ноябрь 23, 2024, 07:58 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QFile: загадки во тьме  (Прочитано 4133 раз)
once_again_abc
Гость
« : Октябрь 25, 2011, 04:18 »

Почему не работает вот этот код:

Код:
    QFile file( file_name );

    if( file.exists() == false )
        return false;

    file.open( QIODevice::ReadWrite, QIODevice::Text );
  [u][b]  file.write( buff );[/b][/u]

    ....

    file.flush();
    file.close();


ошибка вылетает здесь c:\QtSDK\VS2010-473\src\corelib\io\qiodevice.cpp:

Код:
qint64 QIODevice::write(const char *data, qint64 maxSize)
{
    Q_D(QIODevice);
[u][b]    CHECK_WRITABLE(write, qint64(-1));[/b][/u]
    CHECK_MAXLEN(write, qint64(-1));

файл существует, путь к файлу правилен, никаких ограничений на запись нет...

ПС. file.error(); возвращает 0. файл ничем не заблокирован/не открыт и т.п.
« Последнее редактирование: Октябрь 25, 2011, 04:22 от once_again_abc » Записан
Nimbus
Гость
« Ответ #1 : Октябрь 25, 2011, 04:28 »

file.open( QIODevice::ReadWrite, QIODevice::Text );
Вот это выглядит подозрительно.
Вы, наверное, путаете вот это вот с этим
По хорошему надо так:
Код
C++ (Qt)
file.open( QIODevice::ReadWrite | QIODevice::Text );
 
Записан
once_again_abc
Гость
« Ответ #2 : Октябрь 25, 2011, 04:50 »

file.open( QIODevice::ReadWrite, QIODevice::Text );
Вот это выглядит подозрительно.
Вы, наверное, путаете вот это вот с этим
По хорошему надо так:
Код
C++ (Qt)
file.open( QIODevice::ReadWrite | QIODevice::Text );
 

спасибо! помогло. что-то кютишники здесь слегка намудрили мне кажется =)
Записан
Blackwanderer
Гость
« Ответ #3 : Октябрь 25, 2011, 05:12 »

что-то кютишники здесь слегка намудрили мне кажется =)
Да нет, это у вас пробелы в знаниях. Почитайте про побитовые логические операции и их использование при работе с флагами.
Записан
once_again_abc
Гость
« Ответ #4 : Октябрь 25, 2011, 06:11 »

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

это уже были бы не пробелы, а отсутсвие знаний как таковых. в любом случае, ваш совет не для меня =)

ПС. по моему скоромному мнению интерфейс у класса QFile неудачный. то, что я делал c файлами за несколько минут на Win32/POSIX заняло у меня два часа на этом долбаном QFile.
« Последнее редактирование: Октябрь 25, 2011, 06:14 от once_again_abc » Записан
Nimbus
Гость
« Ответ #5 : Октябрь 25, 2011, 06:17 »

А загуглить было не айс?
Третья ссылка из гугла
Нагляднее некуда
« Последнее редактирование: Октябрь 25, 2011, 06:38 от JC » Записан
thechicho
Гость
« Ответ #6 : Октябрь 25, 2011, 09:32 »

кто ж так сравнивает. ты когда в Win32/POSIX знакомился с работой с файлами, за несколько минут все освоил? а тут аж за пару часов, ага Веселый
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.161 секунд. Запросов: 21.