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


Автор: Maledictus 19.2.2009, 07:40
При выполнении приложения в выводе повляется это сообщение.Оно не влияет на программу и я смог найти в каком месте это происходит.
Код

void RelogDlgImpl::RegExpLoadFromFile()
{
    if(pathes.path_to_template != "NO" || pathes.path_to_template != "" ){
        QFile TemplateFile ( pathes.path_to_template );
        TemplateFile.open ( IO_ReadOnly );
        QString RegExp;
        RegExpLWgt->clear();
        while ( !TemplateFile.atEnd() ) {
            RegExp = TemplateFile.readLine();
            RegExpLWgt->addItem ( RegExp );
            }
        TemplateFile.close();
    }else
        WarningMessage("Не указан файл шаблонов","utf8");
}


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

Автор: SABROG 19.2.2009, 11:43
Код

    if (d->filePath.isEmpty()) {
        qWarning("QFSFileEngine::open: No file name specified");
        setError(QFile::OpenError, QLatin1String("No file name specified"));
        return false;
    }


Код

if(pathes.path_to_template != "NO" || pathes.path_to_template != "" ){


"||" - операция OR тут выполняет такую логику "если в переменной не надпись "NO", а пустота например "", то выполнить код в блоке if."

Вторая проверка никогда не будет выполнена. Замени "||" на "&&", а 'pathes.path_to_template != ""'  на "!pathes.path_ti_template.isEmpty()"

"||" - была бы в таком случае

Код

if(pathes.path_to_template == "NO" || pathes.path_to_template == "" )
{
ошибка
}
else
{
все ок
}

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