询威纶通屏中宏指令的字符串比较的问题 点击:1708 | 回复:1



西玛仪表 028-66505957 13808018567

    
  • 精华:0帖
  • 求助:2帖
  • 帖子:54帖 | 1652回
  • 年度积分:0
  • 历史总积分:2355
  • 注册:2006年4月18日
发表于:2011-01-13 22:43:15
楼主

之前问过威纶通宏指令中制作用户名和密码登录界面的问题。多谢威武小郭和MT8000tx帮我解答。。

详情请看:http://www.gongkong.com/webpage/forum/201101/2011011023245200001-1.shtml

现在我又突发奇想,想在用户中设定第一个用户为自己的默认用户,比如用户名是create。而且这个用户名是无法修改的。只在后台,不显示在任何界面上。我该如何在宏指令中直接进行比较呢?因为name【3】是short型变量。而实际上在界面中输入的用户名是字元。

直接用name【0】==‘cr‘ and name【1】==‘ea‘ and name【2】==‘te‘似乎是不行的。。。。

 




Weintek-HMI

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 20回
  • 年度积分:0
  • 历史总积分:49
  • 注册:2008年6月13日
发表于:2011-01-14 09:41:31
1楼
 

EB8000很快会推出一个版本, 提供完整的字串处理与比较功能

但目前的版本只能逐字元比较

 

因为nameshort型变量, 所以需先转换为char型变量,  简单的例子如下, 提供你参考

 

macro_command main()

char  data[6]

short name[3]

 

GetData(name[0], "Local HMI",LW, 100,3)// get input user name

 

LOBYTE(name[0], data[0])

HIBYTE( name[0], data[1])

LOBYTE(name[1], data[2])

HIBYTE( name[1], data[3])

LOBYTE(name[2], data[4])

HIBYTE( name[2], data[5])

 

if (data[0] == ‘c‘ and data[1] == ‘r‘ and data[2] == ‘e‘ and data[3] == ‘a‘ and data[4] == ‘t‘ and data[5] == ‘e‘) then

end if   


end macro_command

 


热门招聘