QMacros 更新 – 增加对单边宏定义的支持

【更新说明】

默认情况下,QMacros 支持的宏定义是包含在开始和结束字符之间的一串内容,如 [MacroName] 。但有些时候,我们的宏可能只有开始符而没有结束符,而是靠标志符的规则来控制宏名称的结束。如下面带参数的 SQL 语句:

select * from mytable where id>:id and age<:age

其规则就是以 : 开始,遇到第一个非有效的标志符截止(上面的空白)。我们从上面解析出来两个参数: id 和 age。

QMacros 现在已经支持这种宏的解析,只需要在编译或替换时的标志位上设置 MRF_END_WITH_INVALID_CHAR 标志位即可。如上面的脚本,我们使用下面的代码进行宏替换:

AMacros.Push('id',100);
AMacros.Push('age',50);
S:=AMacros.Replace('select * from mytable where id>:id and age<:age',':',#0,MRF_END_WITH_INVALID_CHAR);

S 的内容将为:

select * from mytable where id>100 and age<50

另外,程序还修改了对于 0 长度宏的支持,改为抛出异常。

【更新级别】

可选

 

分享到: