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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Ошибка записи в файл  (Прочитано 3049 раз)
stanukih
Гость
« : Март 16, 2015, 21:35 »

void MainWindow::on_action_4_triggered()
{
    QString namefile;
    namefile=QFileDialog::getSaveFileName(this,"Экспортировать файл",QDir::homePath(),"Файл маршрутов (*.mrs)");
    if (namefile!="")
    {
        QMessageBox::information(this,"Маршруты",namefile);
        namefile=QFileDialog::FileName;
        QFile f(namefile);
        f.remove();
        f.open(QIODevice::WriteOnly | QIODevice::Text);
        QTextStream out(&f);

        for (int j = 0; j < i; ++j) {
            out<<MARSH.nach<<endl<<MARSH.konec<<endl<<MARSH.nomer;
        }

        f.close();
        QMessageBox::information(this,"Маршруты","Данные успешно экспортированы");
    }
    /**/

}



По пункту меню он долже сохранять массив класса (строк класса). Выходит ошибка QIODevice::write: device not open. Что я делаю не так?
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #1 : Март 16, 2015, 21:43 »

namefile=QFileDialog::FileName; - зачем это? убери и заработает. результат f.open() тоже лучше бы проверять.

и строку на пустоту лучше проверять через !namefile.isEmpty()
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
stanukih
Гость
« Ответ #2 : Март 16, 2015, 21:45 »

спасибо чет под вечер недогнал...
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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