hblovetian
新手,望各位大哥大姐指点。
级别: 略有小成
精华主题: 0
发帖数量: 242 个
工控威望: 492 点
下载积分: 6069 分
在线时间: 142(小时)
注册时间: 2010-11-04
最后登录: 2024-01-04
查看hblovetian的 主题 / 回贴
楼主  发表于: 2017-03-29 22:27
宏指令中怎么取一个字符的前几位,后几位,和中间几位。如'0123456789'怎么取12345,12345678,6789。怎么编写宏指令,谢谢。
希望各位多多指点。谢谢!
lixianji_007
级别: 工控侠客
精华主题: 0
发帖数量: 240 个
工控威望: 2869 点
下载积分: 5122 分
在线时间: 759(小时)
注册时间: 2011-08-27
最后登录: 2024-04-24
查看lixianji_007的 主题 / 回贴
1楼  发表于: 2017-03-30 12:16
图片:
函数库里有这个函数的,不过威纶的宏指令手册里没有讲解,做了个样例仿真一下可以的;

macro_command main()
char a[10],b[10]   //定义
GetData(a[0],"TK6070iP",lw,20,10)  //读取源字符串
StringMid(a[2],6,b[0] )    //从字符串lw20开始的第3个字符截取6个字符保存到b[0]开始地址;
SetData (b[0],"TK6070iP",lw,100,10)  //截取的字符串保存到lw100开始的地址
end macro_command
[ 此帖被lixianji_007在2017-03-30 12:22重新编辑 ]
本帖最近评分记录:
  • 下载积分:+1(anke5410) 热心助人!
  • 天下事有难易乎?为之,则难者亦易矣!不为,则易者亦难矣!
    lixianji_007
    级别: 工控侠客
    精华主题: 0
    发帖数量: 240 个
    工控威望: 2869 点
    下载积分: 5122 分
    在线时间: 759(小时)
    注册时间: 2011-08-27
    最后登录: 2024-04-24
    查看lixianji_007的 主题 / 回贴
    2楼  发表于: 2017-03-30 14:28
    这个是字符串截取,不是浮点数的截取,如果要10进制数的截取的话可以用算术运算解决,如数据是123456,要取前4位的话就除以100,取商;如要取后4位的话就用减法;也可用逻辑运算和算术运算配合的方法实现。
    天下事有难易乎?为之,则难者亦易矣!不为,则易者亦难矣!