//-------------------------------------- StreamingServicePlugin loadPlugin(const QString &directory) { QString metadataPath = findFileByExtension(directory, "ini"); QString scriptPath = findFileByExtension(directory, "js"); QString descPath = findFileByExtension(directory, "html"); QString locale = QLocale::system().name().split("_")[0]; QString translationPath = findTranslation(descPath, locale); if (!translationPath.isEmpty()) descPath = translationPath; StreamingServicePlugin retVal; retVal.Code = readFileContent(scriptPath); retVal.Description = readFileContent(descPath); readMetadata(metadataPath, retVal); retVal.scriptPath = scriptPath; return retVal; }
void PythonEngine::init() { m_isRunning = false; m_stdOut = ""; // connect stdout connect(this, SIGNAL(pythonShowMessage(QString)), this, SLOT(stdOut(QString))); // init python Py_Initialize(); // read functions m_functions = readFileContent(datadir() + "/functions.py"); m_dict = PyDict_New(); PyDict_SetItemString(m_dict, "__builtins__", PyEval_GetBuiltins()); // init engine extensions Py_InitModule("pythonlab", pythonEngineFuntions); addCustomExtensions(); // custom modules PyRun_String(QString("import sys; sys.path.insert(0, \"" + datadir() + "/resources/python" + "\")").toStdString().c_str(), Py_file_input, m_dict, m_dict); // functions.py PyRun_String(m_functions.toStdString().c_str(), Py_file_input, m_dict, m_dict); }
int main(int argc, char *argv[]) { unsigned char *sourceFile; unsigned char *dstFile; unsigned char key[AES_BLOCK_SIZE]; unsigned int i; // check command args if (argc != 3 && argc != 5) { printf("decrypt_dir src_file dst_file -k key\n"); return -1; } sourceFile = argv[1]; dstFile = argv[2]; for (i = 0; i < AES_BLOCK_SIZE; i++) { key[i] = 32 + i; } if (argc == 5) { if (strlen(argv[4]) >= 16) { argv[4][15] = '\0'; } sprintf(key, "%s", argv[4]); } unsigned char *content = readFileContent(sourceFile); unsigned char *decryptContent = aes_decrypt_cbc_str(key, content); writeContentToFile(decryptContent, dstFile); free(content); free(decryptContent); return 0; }
void ReportDialog::generateIndex() { logMessage("ReportDialog::generateIndex()"); QString fileNameTemplate = tempProblemDir() + "/report/template.html"; QString fileNameIndex = tempProblemDir() + "/report/report.html"; QString content; // load template.html content = readFileContent(fileNameTemplate); QFile::remove(fileNameTemplate); // save index.html QFile fileIndex(fileNameIndex); if (fileIndex.open(QIODevice::WriteOnly | QIODevice::Text)) { QTextStream stream(&fileIndex); stream.setCodec("UTF-8"); stream << replaceTemplates(content); fileIndex.flush(); fileIndex.close(); } }
//================================================================================ void test_get_var_name(const string& absFilePath) //================================================================================ { //==== parse file content output << "parsing file: " << absFilePath << endl; // FunctionBlock* pou = 0; FunctionBlock* fb = 0; //=== read file content string buf; readFileContent(absFilePath, buf); string err = parse_string(buf, &fb); if ( err.empty() ) { string name; StringPosRange range; const var_decl_sections_type vds = fb->getVarDeclSections(); for(var_decl_sections_citer ci_vds = vds.begin(); ci_vds != vds.end(); ++ci_vds) { const var_declarations_type vd = (*ci_vds)->getVarDeclList(); for(var_declarations_citer ci_vd = vd.begin(); ci_vd != vd.end(); ++ci_vd) { const vars_type v = (*ci_vd)->getVariables(); for(vars_citer ci_v = v.begin(); ci_v != v.end(); ++ci_v) { name = (*ci_v)->getName(); range = (*ci_v)->getNameRange(); break; } break; } break; } output << buf << endl; output << name << endl; output << range.getFirst() << endl; output << range.getLast() << endl; output << range.getLength() << endl; } else { output << err << endl; } delete fb; }
std::unique_ptr<File> Extractor::readFile() { auto fileName = readFileName(); readFileTimestamp(); readFileOwnerId(); readFileGroupId(); readFileMode(); auto fileSize = readFileSize(); readUntilEndOfFileHeader(); auto fileContent = readFileContent(fileSize); return std::make_unique<StringFile>(fileContent, fileName); }
void AgrosSolver::runScript() { if (!QFile::exists(m_fileName)) { Agros2D::log()->printMessage(tr("Scripting Engine"), tr("Python script '%1' not found").arg(m_fileName)); QApplication::exit(-1); } m_command = readFileContent(m_fileName); runCommand(); }
/** * When file finished, execute JavaScript functions */ void Qasmine::finishLoading(bool isFinished) { if (!isFinished) { this->log("ERROR: cannot load file : '" + fileName + "'"); exitConditionally(255); } QWebFrame *frame = webView->page()->mainFrame(); frame->evaluateJavaScript(readFileContent(":/qasmine.js")); frame->addToJavaScriptWindowObject(QString("qasmine"), this); frame->evaluateJavaScript(getQasmineJsCommand()); }
//================================================================================ void test_task_configuration(const string& absFilePath) //================================================================================ { //==== parse file content output << "parsing file: " << absFilePath << endl; Resource* res = 0; //=== read file content string buf; readFileContent(absFilePath, buf); string err = parse_string(buf, &res); // modify import directive task_configurations_type task_configurations = res->getTaskConfigurations(); task_configurations_citer ci_taskconf; for(ci_taskconf = task_configurations.begin(); ci_taskconf != task_configurations.end(); ++ci_taskconf) { } --ci_taskconf; --ci_taskconf; string name = (*ci_taskconf)->getName(); StringPosRange nameRange = (*ci_taskconf)->getNameRange(); string fftask = (*ci_taskconf)->getFftask(); StringPosRange fftaskRange = (*ci_taskconf)->getFftaskRange(); string interval = (*ci_taskconf)->getInterval(); StringPosRange intervalRange = (*ci_taskconf)->getIntervalRange(); string iosync = (*ci_taskconf)->getIosync(); StringPosRange iosyncRange = (*ci_taskconf)->getIosyncRange(); string priority = (*ci_taskconf)->getPriority(); StringPosRange priorityRange = (*ci_taskconf)->getPriorityRange(); string autostart = (*ci_taskconf)->getAutostart(); StringPosRange autostartRange = (*ci_taskconf)->getAutostartRange(); StringPosRange initlistrange = (*ci_taskconf)->getInitialisationListRange(); output << buf << endl; delete res; }
//================================================================================ void test_configuration_positions(const string& absFilePath) //================================================================================ { //==== parse file content output << "parsing file: " << absFilePath << endl; Configuration* con = 0; //=== read file content string buf; readFileContent(absFilePath, buf); string err = parse_string(buf, &con); // modify import directive import_directives_type import_directives = con->getImportDirectives(); import_directives_citer ci_impdir; for(ci_impdir = import_directives.begin(); ci_impdir != import_directives.end(); ++ci_impdir) { } --ci_impdir; --ci_impdir; StringPosRange range = (*ci_impdir)->getImportDirectiveRange(); buf.erase(range.getFirst() - 1, range.getLast() - range.getFirst() + 2); string NewImportDirective = "#IMPORT \"ModifiedResource.res\""; buf.insert(range.getFirst() -1, NewImportDirective); // add import directive delete con; err = parse_string(buf, &con); NewImportDirective = "\n #IMPORT \"AddedResource1.res\""; buf.insert(con->getNextImpDirInsertPos(), NewImportDirective); // add import directive delete con; err = parse_string(buf, &con); NewImportDirective = "\n #IMPORT \"AddedResource2.res\""; buf.insert(con->getNextImpDirInsertPos(), NewImportDirective); output << buf << endl; delete con; }
// Loads an xml document from a file. Returns 0 on error TiXmlDocument *XmlHelper::loadFromFile(const std::string &fname) { std::string content; if(!readFileContent(fname, content)){ return 0; } TiXmlDocument *doc = new TiXmlDocument(); doc->Parse(content.c_str()); if(doc->Error()){ debug("Error parsing the file %s\n", fname.c_str()); delete doc; return 0; } // everything ok return doc; }
void Extractor::readLookupTable() { // In the GNU format, the special file name '/' denotes a lookup table. // However, we need to ensure that it is just a standalone '/' because "//" // denotes the start of a filename table. if (hasLookupTableAt(i)) { // The lookup table has the same format as a file. However, as we do // not need it, throw it away after reading (i.e. do not store its // content). ++i; readFileTimestamp(); readFileOwnerId(); readFileGroupId(); readFileMode(); auto fileSize = readFileSize(); readUntilEndOfFileHeader(); readFileContent(fileSize); } }
void PythonEngine::init() { m_isScriptRunning = false; m_isExpressionRunning = false; // init python PyEval_InitThreads(); Py_Initialize(); // args /// \todo Better int argc = 1; char ** argv = new char*[1]; argv[0] = new char[1](); PySys_SetArgv(argc, argv); delete [] argv[0]; delete [] argv; // read pythonlab functions addFunctions(readFileContent(datadir() + "/resources/python/functions_pythonlab.py")); addCustomFunctions(); // m_dict = PyDict_New(); // PyDict_SetItemString(m_dict, "__builtins__", PyEval_GetBuiltins()); PyObject *main = PyImport_ImportModule("__main__"); Py_INCREF(main); m_dict = PyModule_GetDict(main); Py_INCREF(m_dict); // init engine extensions Py_InitModule("pythonlab", pythonEngineFuntions); addCustomExtensions(); // custom modules PyObject *import = PyRun_String(QString("import sys; sys.path.insert(0, \"" + datadir() + "/resources/python" + "\")").toLatin1().data(), Py_file_input, m_dict, m_dict); Py_XDECREF(import); // functions.py PyObject *func = PyRun_String(m_functions.toLatin1().data(), Py_file_input, m_dict, m_dict); Py_XDECREF(func); }
void AgrosSolver::runScript() { // log stdout if (m_enableLog) m_log = new LogStdOut(); if (!QFile::exists(m_fileName)) { Agros2D::log()->printMessage(tr("Scripting Engine"), tr("Python script '%1' not found").arg(m_fileName)); QApplication::exit(-1); } QTime time; time.start(); // silent mode setSilentMode(true); connect(currentPythonEngineAgros(), SIGNAL(pythonShowMessage(QString)), this, SLOT(stdOut(QString))); connect(currentPythonEngineAgros(), SIGNAL(pythonShowHtml(QString)), this, SLOT(stdHtml(QString))); bool successfulRun= currentPythonEngineAgros()->runScript(readFileContent(m_fileName), m_fileName); if (successfulRun) { Agros2D::log()->printMessage(tr("Solver"), tr("Problem was solved in %1").arg(milisecondsToTime(time.elapsed()).toString("mm:ss.zzz"))); Agros2D::scene()->clear(); Agros2D::clear(); QApplication::exit(0); } else { ErrorResult result = currentPythonEngineAgros()->parseError(); Agros2D::log()->printMessage(tr("Scripting Engine"), tr("%1\nLine: %2\nStacktrace:\n%3\n"). arg(result.error()). arg(result.line()). arg(result.traceback())); QApplication::exit(-1); } }
//================================================================================ void readListOfFileNames(const string& fileNameListFile, ListOfFileNames& fileNameList) //================================================================================ { string buf; readFileContent(fileNameListFile, buf); StringPos lineStart = buf.find_first_not_of(" \t\r\n"); StringPos lineEnd = buf.find_first_of("\r\n"); while( lineStart < buf.size() && lineEnd < buf.size() ) { if ( buf.at(lineStart) != '#' ) fileNameList.push_back(buf.substr(lineStart, lineEnd - lineStart)); lineStart = buf.find_first_not_of(" \t\r\n", lineEnd); lineEnd = buf.find_first_of("\r\n", lineStart); } return; }
//================================================================================ void test_struct_positions(const string& absFilePath) //================================================================================ { //==== parse file content output << "parsing file: " << absFilePath << endl; StStruct* st = 0; //=== read file content string buf; readFileContent(absFilePath, buf); string err = parse_string(buf, &st); if ( err.empty() ) { StringPos insertPos; bool sectionExists; st->getVarInsertPos("STRUCT", "", insertPos, sectionExists); string varDecl = " NewVar : DINT;\n"; string varDeclSect = "\nVAR_INPUT\n" + varDecl + "END_VAR"; if ( sectionExists ) { buf.insert(insertPos, varDecl); } else { buf.insert(insertPos, varDeclSect); } output << buf << endl; } else { output << err << endl; } delete st; }
//================================================================================ void test_globvarconstantlist_positions(const string& absFilePath) //================================================================================ { //==== parse file content output << "parsing file: " << absFilePath << endl; GlobVarConstList* gvcl = 0; //=== read file content string buf; readFileContent(absFilePath, buf); string err = parse_string(buf, &gvcl); if ( err.empty() ) { StringPos insertPos; bool sectionExists; gvcl->getVarInsertPos("CONST", "", insertPos, sectionExists); string varDecl = " NewVar : DINT;\n"; string varDeclSect = "\nCONST\n" + varDecl + "END_CONST"; if ( sectionExists ) { buf.insert(insertPos, varDecl); } else { buf.insert(insertPos, varDeclSect); } output << buf << endl; } else { output << err << endl; } delete gvcl; }
std::string genFileMD5(std::string filename) { MD5Data md5; std::string file; size_t lastReadSize = 0; size_t limitSize = 1024 * 1024; do { file = readFileContent(filename, true, limitSize, lastReadSize); if (file.empty()) { break; } lastReadSize += file.length(); md5 << file; if (file.size() < limitSize) { break; } } while (true); return md5.genMD5(); }
std::string getProcessName() { std::string name = "unknown"; char buf[260] = { 0 }; #ifdef WIN32 if (GetModuleFileNameA(NULL, buf, 259) > 0) { name = buf; } std::string::size_type pos = name.rfind("\\"); if (pos != std::string::npos) { name = name.substr(pos + 1, std::string::npos); } pos = name.rfind("."); if (pos != std::string::npos) { name = name.substr(0, pos - 0); } #elif defined(__APPLE__) proc_name(getpid(), buf, 260); name = buf; return name;; #else sprintf(buf, "/proc/%d/cmdline", (int)getpid()); name = readFileContent(buf, true, 500, 0); std::string::size_type pos = name.rfind("/"); if (pos != std::string::npos) { name = name.substr(pos + 1, std::string::npos); } #endif return name; }
void PythonEngineAgros::addCustomFunctions() { addFunctions(readFileContent(datadir() + "/resources/python/functions_agros2d.py")); }
//================================================================================ void test_resource_positions(const string& absFilePath) //================================================================================ { //==== parse file content output << "parsing file: " << absFilePath << endl; Resource* res = 0; //=== read file content string buf; readFileContent(absFilePath, buf); string err = parse_string(buf, &res); program_configurations_type program_configurations = res->getProgramConfigurations(); program_configurations_citer ci_progconf; for(ci_progconf = program_configurations.begin(); ci_progconf != program_configurations.end(); ++ci_progconf) { string ProgClass = (*ci_progconf)->getProgramClass(); StringPosRange ProgClassRange = (*ci_progconf)->getProgramClassRange(); StringPosRange NameRange = (*ci_progconf)->getNameRange(); StringPosRange Range = (*ci_progconf)->getRange(); } task_configurations_type task_configurations = res->getTaskConfigurations(); task_configurations_citer ci_taskconf; for(ci_taskconf = task_configurations.begin(); ci_taskconf != task_configurations.end(); ++ci_taskconf) { StringPosRange NameRange = (*ci_taskconf)->getNameRange(); StringPosRange Range = (*ci_taskconf)->getRange(); } // modify import directive import_directives_type import_directives = res->getImportDirectives(); import_directives_citer ci_impdir; for(ci_impdir = import_directives.begin(); ci_impdir != import_directives.end(); ++ci_impdir) { } --ci_impdir; --ci_impdir; StringPosRange range = (*ci_impdir)->getImportDirectiveRange(); buf.erase(range.getFirst() - 1, range.getLast() - range.getFirst() + 2); string NewImportDirective = "#IMPORT \"ModifiedGlobVarFile.gvl\""; buf.insert(range.getFirst() -1, NewImportDirective); // add import directive delete res; err = parse_string(buf, &res); NewImportDirective = "\n #IMPORT \"AddedGlobVarFile1.gvl\""; buf.insert(res->getNextImpDirInsertPos(), NewImportDirective); // add import directive delete res; err = parse_string(buf, &res); NewImportDirective = "\n #IMPORT \"AddedGlobVarFile2.gvl\""; buf.insert(res->getNextImpDirInsertPos(), NewImportDirective); // add task conf delete res; err = parse_string(buf, &res); string NewTaskConf = "\n TASK AddedTask1(INTERVAL:=T#100ms, PRIORITY:=5);"; buf.insert(res->getNextTaskConfInsertPos(), NewTaskConf); // add task conf delete res; err = parse_string(buf, &res); NewTaskConf = "\n TASK AddedTask2(INTERVAL:=T#100ms, PRIORITY:=5);"; buf.insert(res->getNextTaskConfInsertPos(), NewTaskConf); // add prog conf delete res; err = parse_string(buf, &res); string NewProgConf = "\n PROGRAM AddedProg1 WITH TaskSimulate: Simulate;"; buf.insert(res->getNextProgConfInsertPos(), NewProgConf); // add prog conf delete res; err = parse_string(buf, &res); NewProgConf = "\n PROGRAM AddedProg2 WITH TaskSimulate: Simulate;"; buf.insert(res->getNextProgConfInsertPos(), NewProgConf); output << buf << endl; delete res; }
//================================================================================ void test_ops(const string& absFilePath) //================================================================================ { //==== parse file content output << "parsing file: " << absFilePath << endl; // StStruct* pou = 0; FunctionBlock* pou = 0; // Function* pou = 0; string SourceFile; BOOL grFile = FALSE; CString extension = CString(absFilePath.c_str()).Right(4); if (extension.Right(4).CompareNoCase(".4gr") == 0) { grFile = TRUE; ExtractHeader(absFilePath, SourceFile); } else { SourceFile = absFilePath; } //=== read file content string buf; readFileContent(SourceFile, buf); string err = parse_string(buf, &pou); StringPos insertPos; bool sectionExists; pou->getVarInsertPos("VAR_INPUT", "", insertPos, sectionExists); // pou->getVarInsertPos("STRUCT", "", insertPos, sectionExists); string varDecl = " NewVar : DINT;\n"; string varDeclSect = "\nVAR_INPUT\n" + varDecl + "END_VAR"; // string varDeclSect = "\nSTRUCT\n" + varDecl + "END_VAR"; if ( sectionExists ) { buf.insert(insertPos, varDecl); } else { buf.insert(insertPos, varDeclSect); } output << buf << endl; if (grFile == TRUE) { string MHFile = "c:\\modifiedHeader.txt"; ofstream modifiedHeader(MHFile.c_str()); modifiedHeader << buf << endl; modifiedHeader.close(); MergeHeader(absFilePath, MHFile, TRUE); } delete pou; }
/** * Before load started, override jasmine */ void Qasmine::loadStarted() { QWebFrame *frame = webView->page()->mainFrame(); frame->evaluateJavaScript(readFileContent(":/override-jasmine.js")); }