Russian Qt Forum

Qt => Вопросы новичков => Тема начата: stanukih от Март 16, 2015, 21:35



Название: Ошибка записи в файл
Отправлено: 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. Что я делаю не так?


Название: Re: Ошибка записи в файл
Отправлено: kambala от Март 16, 2015, 21:43
namefile=QFileDialog::FileName; - зачем это? убери и заработает. результат f.open() тоже лучше бы проверять.

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


Название: Re: Ошибка записи в файл
Отправлено: stanukih от Март 16, 2015, 21:45
спасибо чет под вечер недогнал...