Example #1
0
        /// <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());
        }