一种基于VB6的表达式处理方法技术

技术编号:35534667 阅读:30 留言:0更新日期:2022-11-09 15:00
本发明专利技术公开一种基于VB6的表达式处理方法,包括表达式的验证及引用的变量的获取和表达式的解析及计算两部分,表达式的验证及引用的变量的获取包括以下步骤:初始化;输入表达式字符串;读取操作项;验证操作项;操作项判断;储存变量名;输出变量名数组;表达式的解析及计算包括以下步骤:初始化;输入表达式字符串及变量名/变量值的键值对二维数组;读取操作项;操作项判断;优先级判断;操作数出栈;计算;操作数压栈;操作符出栈;是否变量;替换变量;操作数压栈;输出计算结果。本发明专利技术提供的一种基于VB6的表达式处理方法,用于CBOM,可根据编写出来的表达式不同的输入计算出不同的结果,同时还可以实时验证表达式的编写是否正确。确。确。

【技术实现步骤摘要】
一种基于VB6的表达式处理方法


[0001]本专利技术涉及一种表达式处理引擎,具体涉及一种基于VB6的表达式处理方法。

技术介绍

[0002]电梯设计BOM数字化平台(简称:CBOM)是一种自动获取电梯整梯设计BOM的系统。在CBOM中图纸的设计将转换成逻辑数据,在转换时需录入表达式。CBOM使用这些逻辑数据及用户输入的电梯参数信息自动获取电梯的设计BOM,在获取过程中,需要解析数据中的表达式。因此,表达式处理引擎是CBOM中较为关键的技术之一。
[0003]表达式可分为两种:常量表达式、带变量表达式,表达式是由至少一个操作项组成的字符串,其中操作项可分两种:操作数、操作符,其中操作数分为两种:常量、变量,操作符分为两种:符号操作符、函数操作符,常量分为两种:数值常量、字符串常量,变量根据其储存的类型不同可分为3种:数值变量、字符串变量、NULL变量。
[0004]变量:以英文中括号包含的一组字符串,其中字符串即为变量名,如[A1],此变量的变量名为A1,变量可储存3种不同的类型:数值、字符串、NULL(未知值);以下为表达式相本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于VB6的表达式处理方法,包括表达式的验证及引用的变量的获取和表达式的解析及计算两部分,其特征在于,表达式的验证及引用的变量的获取包括以下步骤:a1、初始化加载包含所有内部定义操作符的字典对象,用作验证操作项;a2、输入表达式字符串接收表达式字符串;a3、读取操作项从表达式字符串中读取操作项;a4、验证操作项验证操作项是否为字符常量、数字常量、符号操作符、函数操作符、变量中的一种;a5、操作项判断判断操作项是否为变量;a6、储存变量名将变量名储存于变量名数组中,跳到步骤a3读取下一个最前面的操作项;a7、输出变量名数组将步骤a6中的变量名数组返回,结束验证;表达式的解析及计算包括以下步骤:b1、初始化加载包含所有内部定义操作符的字典对象,用作计算时获取操作符所需操作数的数量;加载两个操作符之间的优先级的字典对象,用作优先级判断;b2、输入表达式字符串及变量名/变量值的键值对二维数组接收表达式字符串、变量名/变量值的键值对二维数组将其转化成变量字典对象、初始化操作符栈、操作符栈顶、操作数栈、操作数栈顶;b3、读取操作项从表达式字符串中读取最前面的操作项;b4、操作项判断判断读取到的操作项是否为操作符;b5、优先级判断根据操作符栈顶与步骤b3读取到操作项判断两个操作符之间的优先级;b6、操作数出栈根据操作符字典对象获取操作符栈顶所需操作数的数量,并按照此数量分别进行操作数出栈;b7、计算根据操作符栈顶与步骤b6出栈的操作数调用内部计算函数运算得出结果;b8、操作数压栈将步骤b7所得运算结果压入操作数栈;b9、操作符出栈操作符出栈,跳到步骤b5,进行当前操作符栈顶优先级判断;b10、是否变量
判断操作数是否是变量;b11、替换变量根据变量的变量名从变量字典...

【专利技术属性】
技术研发人员:李敬勇雷树礼
申请(专利权)人:快意电梯股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1