示例#1
0
        public bool GetDimension(string DigitalString, ref double dDimension)
        {
            if (!IsValidDigital(DigitalString)) return false;

            DigitalStringContext ctx = new DigitalStringContext();
            ctx.m_OriginalString = DigitalString;
            ctx.m_Period = m_Period;

            // Parse the string.
            bool result = DigitalParser.Parse(ctx);

            string StrValue = ctx.m_NBP.ToString() + ctx.m_Period.ToString()
                + ctx.m_NAP.ToString();

            try
            {
                double dValue = double.Parse(StrValue);
                dDimension = GetSign(ctx.m_CBN.ToString()) * dValue;
            }
            catch
            {
                Debug.Assert(false);
                return false;
            }

            return true;
        }
示例#2
0
        // Check whether the sting can be parsed to a valid dimension
        public bool IsValidDigital(string DigitalString)
        {
            Debug.Assert(DigitalString != null);
            if (null == DigitalString) return false;

            if (DigitalString.Trim().Length == 0) return false;

            DigitalStringContext ctx = new DigitalStringContext();
            ctx.m_OriginalString = DigitalString.Trim();
            ctx.m_Period = m_Period;

            // Parse the string.
            bool result = DigitalParser.Parse(ctx);

            // Analyze the result
            if (!IsSign(ctx.m_CBN.ToString()))
                return false;
            if (!IsValidUnit(ctx.m_CAN.ToString()))
                return false;

            return true;
        }