首页 > 解决方案 > 这是什么脚本语言?

问题描述

我必须在工作中修改 scr.file。该脚本是几年前从外部购买的。我可以在一定程度上理解代码,但我无法识别它是用什么脚本语言编写的。

这是一个代码片段:

main()
{
  _ErrLevel->Set(0);                      
  _ErrExecLevel->Set(1);  
  _ErrExecTraceLevel->Set(2); 
  _ActualLevel->Set($_ErrExecTraceLevel);

  _ExtSysID->Set("TDM");
  local tString sScriptName("NFORG.scr");
  env->PutEnv("DB_protID", "NFORG");

  local tInt iMsgCounter(0);
  local tInt iError(0);
  local tDateTime datetime();
  local tString sDateTime();
  local tSql sqlTmp();

  msg->SetMsgOutputToDB(139);

  sqlTmp->Execute(,0, "delete from DB_prot
                       where DB_prot.protID = 'NFORG' 
                       and DB_prot.protTIMESTAMP < ($THISTIMESTAMP - 86400)");
  sqlTmp->Commit();

  if($_ActualLevel >= $_ErrExecLevel){iMsgCounter++;msg->Message("Scr: $sScriptName$ / (%03s) START of NFORG loop.", "$iMsgCounter$");}
  msg->Sleep(1000);
  env->PutEnv("NFORGLOG", "$&DB_CLIENTHOME$\TMP", 1);
  _ENVVAR->Set("NFORG");

  global tTable tblFile();

  if(!tblFile->SetDir("$_ENVVAR", "*.org",0,0,0,"BaseFileName"))
  {
    msg->Sleep(1000);
    if($_ActualLevel >= $_ErrExecLevel){iMsgCounter++;msg->Message("Scr: $sScriptName$ / (%03s) END of NFORG loop.", "$iMsgCounter$");}
    msg->ResetMsgOutputToDB();
    return SOC_OK;
  }
  if($tblFile->CountRows == 0)
  {
    if($_ActualLevel >= $_ErrExecLevel){iMsgCounter++;msg->Message("Scr: $sScriptName$ / (%03s) END of NFORG loop.", "$iMsgCounter$");}
    msg->ResetMsgOutputToDB();
    return SOC_OK;
  }
  else
  {
    if($_ActualLevel >= $_ErrExecLevel){iMsgCounter++;msg->Message("Scr: $sScriptName$ / (%03s)", "$iMsgCounter$");}
  }

  _DoCopy->Set("1");

有人能认出这种语言吗?

我很感激任何帮助。

标签: scripting-language

解决方案


根据这里对函数的一些搜索,它似乎是一种称为 Root 的语言:

https://en.wikipedia.org/wiki/ROOT

“CERN 多年来一直维护一个用 FORTRAN 编写的程序库;开发和维护于 2003 年停止,转而支持用 C++ 编写的 ROOT。”

祝你好运 :)


推荐阅读