hblovetian
新手,望各位大哥大姐指点。
级别: 略有小成
精华主题: 0
发帖数量: 242 个
工控威望: 492 点
下载积分: 6069 分
在线时间: 142(小时)
注册时间: 2010-11-04
最后登录: 2024-01-04
查看hblovetian的 主题 / 回贴
楼主  发表于: 2017-03-29 22:27
宏指令中怎么取一个字符的前几位,后几位,和中间几位。如'0123456789'怎么取12345,12345678,6789。怎么编写宏指令,谢谢。
希望各位多多指点。谢谢!
tyw123456
级别: 家园常客

精华主题: 1 篇
发帖数量: 113 个
工控威望: 797 点
下载积分: 312 分
在线时间: 256(小时)
注册时间: 2016-09-13
最后登录: 2022-07-13
查看tyw123456的 主题 / 回贴
1楼  发表于: 2017-03-30 11:18
你这个问题有问题,你所说的123456789是十进制数,但是我们实际用或者你设数字元件的时候都没有十进制元件选用的也就是说我们看到的0123456789实际上是触摸屏内部将16位或是32位的数值转化过的数值,实际上他在内部123456789是075BCD15 也就是一个32位的字符,然后你要获取的只能说获取这个数的高16位或低16位,然后转换为16位的时候,你又可以获取他的高8位和低八位了,指令是什么LOWORO HIWORO LOBIYE HIBIYE,我忘了, 你所说的获取高中低字是不正确的,这些字符处理的最低是一个八位二进制的数据,假设你说按高中低的话也就是 00000000 00000000 00000000 这样的一段24位二进制字符
静水深流
tyw123456
级别: 家园常客

精华主题: 1 篇
发帖数量: 113 个
工控威望: 797 点
下载积分: 312 分
在线时间: 256(小时)
注册时间: 2016-09-13
最后登录: 2022-07-13
查看tyw123456的 主题 / 回贴
2楼  发表于: 2017-03-30 13:49
图片:
引用
引用第4楼lixianji_007于2017-03-30 12:16发表的  :
函数库里有这个函数的,不过威纶的宏指令手册里没有讲解,做了个样例仿真一下可以的;

macro_command main()
char a[10],b[10]   //定义
GetData(a[0],"TK6070iP",lw,20,10)  //读取源字符串
.......

试了一下,没有达到那种效果啊,还是我对数字元件的设置有错,我设置的是32位浮点数,感觉不对吧,数值元件的数值又不是每一个数都是一个8位二进制,怎么可以填充的满10个CHAR 函数呢
静水深流