/// <summary> /// "跬步"脚本语言引擎启动运行 /// </summary> /// <param name="scriptArray">表达式行列表</param> /// <returns></returns> public string Run(string[] scriptArray) { float fResult = 0; try { string previouslySObj = ""; foreach (string str in scriptArray) { try { bool isFee = false;//是否为算费处理 string[] cmdArray = null; string[] strArray = str.Split('◎'); if (strArray.Length >= 2)//当前行表达式为算费处理 { isFee = true; cmdArray = strArray[1].Split(','); } else { cmdArray = strArray[0].Split(','); } for (int i = 0; i < cmdArray.Length; i++) { if (cmdArray[i] == "[on]") { cmdArray[i] = previouslySObj; } } string[] parameterArray = new string[cmdArray.Length - 1]; Array.Copy(cmdArray, 1, parameterArray, 0, parameterArray.Length); object obj = this.Execute(cmdArray[0], parameterArray); string sObj = obj.ToString(); if (isFee && (sObj != "NaN")) { fResult += float.Parse(sObj); sObj = fResult.ToString(); } previouslySObj = sObj; if (sObj.Trim().ToLower() == "true" && cmdArray[0] == "QuitJudge") { break; } } catch (Exception ex) { LogWrite.TxtExport_DateNow("LogErr.txt", "Engine Run [内]Err:" + ex.ToString()); } } } catch (Exception ex) { LogWrite.TxtExport_DateNow("LogErr.txt", "Engine Run Err:" + ex.ToString()); } return(fResult.ToString()); }