Russian Qt Forum

Qt => Вопросы новичков => Тема начата: Владислав от Июнь 01, 2013, 15:02



Название: engine.checkSyntax(scriptFileName) не работает
Отправлено: Владислав от Июнь 01, 2013, 15:02
Возвращает всегда QScriptSyntaxCheckResult::Error
никто не сталкивался с такой проблемой? это часом не баг

Метод проверки:

   QString scriptFileName(":/microcredit.js");
   QFile scriptFile(scriptFileName);
   if ( scriptFile.open(QIODevice::ReadOnly) )
   {
      engine.evaluate(scriptFile.readAll(), scriptFileName);
      scriptFile.close();
      int error = engine.uncaughtExceptionLineNumber();
      QScriptSyntaxCheckResult checkResult = engine.checkSyntax(scriptFileName);
      int tt= checkResult.errorColumnNumber ();
      int aa= checkResult.errorLineNumber ();
      if (checkResult.state() == QScriptSyntaxCheckResult::Error )
                {         
         emit signal_crash();
         return;
      }      
      emit signal_start();
   }

в microcredit.js только одна строка print('method ok');

причём  int error = engine.uncaughtExceptionLineNumber(); возвращает -1 (т.е. ошибок нет)


Название: Re: engine.checkSyntax(scriptFileName) не работает
Отправлено: mutineer от Июнь 01, 2013, 15:08
Цитировать
QScriptSyntaxCheckResult QScriptEngine::checkSyntax ( const QString & program ) [static]
Checks the syntax of the given program. Returns a QScriptSyntaxCheckResult object that contains the result of the check.

В него не имя файла передавать надо, а сам текст скрипта


Название: Re: engine.checkSyntax(scriptFileName) не работает
Отправлено: Владислав от Июнь 01, 2013, 18:46
Спасибо! Внимательности нет.