⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 framemath.cs

📁 结构很好的三层数据访问组件。开放源码。是微软企业库数据访问的替代产品之一。
💻 CS
字号:
namespace FrameCountry.FrameBuild
{
    using FrameCountry;
    using System;

    public class FrameMath
    {
        private string calcErrorInfo = "";
        private string ClassAlias = "MT";
        private FrameCity frameCity = new FrameCity();

        private string Calc(string calcString)
        {
            string functionAlias = "02";
            if (calcString.IndexOf("(") == -1)
            {
                return this.SimpleCalculate(calcString);
            }
            int index = calcString.IndexOf("(");
            while (calcString.IndexOf("(", (int) (index + 1)) != -1)
            {
                index = calcString.IndexOf("(", (int) (index + 1));
            }
            int num2 = calcString.IndexOf(")", (int) (index + 1));
            if (num2 == -1)
            {
                this.calcErrorInfo = this.frameCity.DealErrorInfo(this.ClassAlias, functionAlias, "括弧不匹配!");
                return "error";
            }
            return this.Calc(calcString.Replace(calcString.Substring(index, (num2 - index) + 1), this.Calc(calcString.Substring(index + 1, (num2 - index) - 1))));
        }

        public bool Calculate(string calcString, ref string calcResult, ref string ErrorInfo)
        {
            string functionAlias = "01";
            calcResult = this.Calc(calcString).Replace("_", "-");
            if (calcResult == "error")
            {
                ErrorInfo = this.frameCity.DealErrorInfo(this.ClassAlias, functionAlias, "◇" + this.calcErrorInfo);
                return false;
            }
            return true;
        }

        public string ChangeDateTimeToFillStyle(DateTime dealDateTime)
        {
            int num = ((dealDateTime.Year * 0x2710) + (dealDateTime.Month * 100)) + dealDateTime.Day;
            int num2 = ((0xf4240 + (dealDateTime.Hour * 0x2710)) + (dealDateTime.Minute * 100)) + dealDateTime.Second;
            return (num.ToString().Substring(2, 6) + num2.ToString().Substring(1, 6));
        }

        public DateTime ChangeFillStyleToDateTime(string strFileStyle)
        {
            return DateTime.Parse("20" + strFileStyle.Substring(0, 2) + "-" + strFileStyle.Substring(2, 2) + "-" + strFileStyle.Substring(4, 2) + " " + strFileStyle.Substring(6, 2) + ":" + strFileStyle.Substring(8, 2) + ":" + strFileStyle.Substring(10, 2));
        }

        private string cutDoc(string strnum)
        {
            try
            {
                int index = strnum.IndexOf(".");
                if (index == -1)
                {
                    return strnum;
                }
                return strnum.Substring(0, index + 3);
            }
            catch
            {
                return strnum;
            }
        }

        public string GenerateCheckCode(int codeCount)
        {
            string str = string.Empty;
            Random random = new Random();
            for (int i = 0; i < codeCount; i++)
            {
                char ch;
                int num = random.Next();
                if ((num % 2) == 0)
                {
                    ch = (char) (0x30 + ((ushort) (num % 10)));
                }
                else
                {
                    ch = (char) (0x41 + ((ushort) (num % 0x1a)));
                }
                str = str + ch.ToString();
            }
            return str;
        }

        private string SimpleCalculate(string simplecalcString)
        {
            string functionAlias = "03";
            char[] anyOf = new char[] { '*', '/', '%' };
            char[] chArray2 = new char[] { '+', '-' };
            char[] chArray3 = new char[] { '*', '/', '%', '+', '-' };
            string str2 = "+-*/()%△";
            simplecalcString = "△" + simplecalcString;
            int index = simplecalcString.IndexOf("-");
            if (index > 0)
            {
                for (int i = 0; i < str2.Length; i++)
                {
                    char ch = str2[i];
                    if (ch.ToString() == simplecalcString.Substring(index - 1, 1))
                    {
                        simplecalcString = simplecalcString.Substring(0, index) + "_" + simplecalcString.Substring(index + 1, (simplecalcString.Length - index) - 1);
                    }
                }
            }
            index = simplecalcString.IndexOf("+");
            if (index > 0)
            {
                for (int j = 0; j < str2.Length; j++)
                {
                    char ch2 = str2[j];
                    if (ch2.ToString() == simplecalcString.Substring(index - 1, 1))
                    {
                        simplecalcString = simplecalcString.Substring(0, index) + simplecalcString.Substring(index + 1, (simplecalcString.Length - index) - 1);
                    }
                }
            }
            simplecalcString = simplecalcString.Substring(1, simplecalcString.Length - 1);
            simplecalcString = simplecalcString.Replace("--", "+");
            simplecalcString = simplecalcString.Replace("+-", "-");
            simplecalcString = simplecalcString.Replace("-_", "+");
            simplecalcString = simplecalcString.Replace("_-", "+");
            simplecalcString = simplecalcString.Replace("+_", "-");
            simplecalcString = simplecalcString.Replace("_+", "-");
            simplecalcString = simplecalcString + "△";
            int num2 = simplecalcString.IndexOfAny(anyOf);
            int num3 = simplecalcString.IndexOfAny(chArray2);
            double num9 = 0.0;
            string str3 = simplecalcString;
            try
            {
                int num;
                int num5;
                if (num2 > -1)
                {
                    num = num2;
                    int startIndex = num - 1;
                    num5 = num + 1;
                    while (str2.IndexOf(simplecalcString.Substring(startIndex, 1)) == -1)
                    {
                        startIndex--;
                        if (startIndex == -1)
                        {
                            break;
                        }
                    }
                    while (str2.IndexOf(simplecalcString.Substring(num5, 1)) == -1)
                    {
                        num5++;
                    }
                    simplecalcString = simplecalcString.Replace("_", "-");
                    simplecalcString = simplecalcString.Replace("--", "+");
                    simplecalcString = simplecalcString.Replace("+-", "-");
                    if (simplecalcString.Substring(num, 1) == "*")
                    {
                        num9 = double.Parse(simplecalcString.Substring(startIndex + 1, (num - startIndex) - 1).Replace("_", "-")) * double.Parse(simplecalcString.Substring(num + 1, (num5 - num) - 1).Replace("_", "-"));
                    }
                    else if (simplecalcString.Substring(num, 1) == "/")
                    {
                        if (double.Parse(simplecalcString.Substring(num + 1, (num5 - num) - 1).Replace("_", "-")) == 0.0)
                        {
                            throw new Exception("错误:除数为0!");
                        }
                        num9 = double.Parse(simplecalcString.Substring(startIndex + 1, (num - startIndex) - 1).Replace("_", "-")) / double.Parse(simplecalcString.Substring(num + 1, (num5 - num) - 1).Replace("_", "-"));
                    }
                    else if (simplecalcString.Substring(num, 1) == "%")
                    {
                        if (double.Parse(simplecalcString.Substring(num + 1, (num5 - num) - 1).Replace("_", "-")) == 0.0)
                        {
                            throw new Exception("错误:除数为0");
                        }
                        num9 = double.Parse(simplecalcString.Substring(startIndex + 1, (num - startIndex) - 1).Replace("_", "-")) % double.Parse(simplecalcString.Substring(num + 1, (num5 - num) - 1).Replace("_", "-"));
                    }
                    if (num9 > 0.0)
                    {
                        str3 = simplecalcString.Substring(0, startIndex + 1) + num9.ToString() + simplecalcString.Substring(num5, simplecalcString.Length - num5);
                    }
                    else
                    {
                        str3 = simplecalcString.Substring(0, startIndex + 1) + "_" + num9.ToString().Substring(1, num9.ToString().Length - 1) + simplecalcString.Substring(num5, simplecalcString.Length - num5);
                    }
                }
                else if (num3 > -1)
                {
                    num = num3;
                    num5 = num + 1;
                    while (str2.IndexOf(simplecalcString.Substring(num5, 1)) == -1)
                    {
                        num5++;
                    }
                    simplecalcString = simplecalcString.Replace("_", "-");
                    simplecalcString = simplecalcString.Replace("--", "+");
                    simplecalcString = simplecalcString.Replace("+-", "-");
                    if (simplecalcString.Substring(num, 1) == "+")
                    {
                        num9 = double.Parse(simplecalcString.Substring(0, num).Replace("_", "-")) + double.Parse(simplecalcString.Substring(num + 1, (num5 - num) - 1).Replace("_", "-"));
                    }
                    else
                    {
                        num9 = double.Parse(simplecalcString.Substring(0, num).Replace("_", "-")) - double.Parse(simplecalcString.Substring(num + 1, (num5 - num) - 1).Replace("_", "-"));
                    }
                    if (num9 > 0.0)
                    {
                        str3 = num9.ToString() + simplecalcString.Substring(num5, simplecalcString.Length - num5);
                    }
                    else
                    {
                        str3 = "_" + num9.ToString().Substring(1, num9.ToString().Length - 1) + simplecalcString.Substring(num5, simplecalcString.Length - num5);
                    }
                }
                else
                {
                    simplecalcString = simplecalcString.Replace("_", "-");
                    simplecalcString = simplecalcString.Replace("--", "");
                    simplecalcString = simplecalcString.Replace("+", "");
                    simplecalcString = simplecalcString.Replace("+-", "-");
                    str3 = double.Parse(simplecalcString.Substring(0, simplecalcString.Length - 1)).ToString() + "△";
                }
            }
            catch (Exception exception)
            {
                this.calcErrorInfo = this.frameCity.DealErrorInfo(this.ClassAlias, functionAlias, exception.Message);
                str3 = "error△";
            }
            str3 = str3.Substring(0, str3.Length - 1);
            if (str3.Substring(1, str3.Length - 1).IndexOfAny(chArray3) > -1)
            {
                return this.SimpleCalculate(str3);
            }
            return str3;
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -