bytebuffer怎么转成string_002.ABB机器人高级编程--String飞升篇

ABB机器人高级编程--String飞升篇 最近国庆节所以托更了,不好意思。 今天也分享的也不能算是飞升,只是把我几年前写的代码和大家分享一下,希望大家相互学习

6f9b93b24da3a77b40c69dd6a785b9f4.png

ABB机器人高级编程--String飞升篇

最近国庆节所以托更了,不好意思。

今天也分享的也不能算是飞升,只是把我几年前写的代码和大家分享一下,希望大家相互学习一起进步,希望更多有这方便意向和天赋的朋友可以共同维护,给刚入门的学弟学妹们少走弯路。

话不多说直接来干货:

我之前只是感觉ABB机器人程序的代码里面有关字符串的功能函数还是太少,虽然有几个但是依旧在项目中不是很方便的使用,看同事平时使用的也比较简单并且有重复编码的情况所以我就想不如花几个中午休息的时间写几个常用的功能函数。后来就仿照高级语言的函数写了几个我感觉常用的功能函数。

【函数名称】:TrimStart
【函数功能】:去除字符串起始位置的 空格字符
【参数输入】:字符串
【参数输出】:字符串
【函数原型】:
FUNC string TrimStart(string value)【函数名称】:TrimEnd
【函数功能】:去除字符串末端位置的 空格字符
【参数输入】:字符串
【参数输出】:字符串
【函数原型】:
FUNC string TrimEnd(string value)【函数名称】:TrimAll
【函数功能】:去除字符前后位置的 空格字符
【参数输入】:字符串
【参数输出】:字符串
【函数原型】:FUNC string TrimAll(string value)【函数名称】:ToLower
【函数功能】:将输入的字符串转换成小写字符
【参数输入】:字符串
【参数输出】:字符串
【函数原型】:
FUNC string ToLower(string value)
【使用方法】:TPWrite(ToUpper("abb IRB 120"));【函数名称】:ToUpper
【函数功能】:将输入的字符串转换成大写字符
【参数输入】:字符串
【参数输出】:字符串
【函数原型】:
FUNC string ToUpper(inout string value)
【使用方法】:TPWrite(ToLower("ABB IRB 120"));【函数名称】:PadRight
【函数功能】:给输入的字符串添加 字符 知道满足输入的长度
【参数输入】:value(需要修改的字符) totalWidth最终字符长度 paddingChar 用于添加的字符 
【参数输出】:字符串
【函数原型】:
FUNC string PadRight(string value,num totalWidth,string paddingChar)
【使用方法】:
var string  result 
result :=PadRight("1",4, "B");
【输出结果】:“1BBB“【函数名称】:PadLeft
【函数功能】:给输入的字符串添加 字符 知道满足输入的长度
【参数输入】:value(需要修改的字符) totalWidth最终字符长度 paddingChar 用于添加的字符 
【参数输出】:字符串
【函数原型】:
FUNC string PadLeft(string value,num totalWidth,string paddingChar)”
【使用方法】:
var string  result 
result := PadLeft ("1",4, "B");
【输出结果】:“BBB1”【函数名称】:Remove
【函数功能】:移除字符指定位置的字符
【参数输入】:value(需要修改的字符)num字符的其实位置paddingChar去除的长度 
【参数输出】:字符串
【函数原型】:
FUNC string Remove(string value,num startIndex,num count)
【使用方法】:TPWrite(Remove("123456",1,2));
【输出结果】:“23456”【函数名称】:Compare
【函数功能】:比较输入的两个字符串的大小
【参数输入】:string1 字符1 string2  字符2  IgnoreCas 是否忽略带小写
【参数输出】:num 如果stirng1>string2 输出 1 反之输出-1 相等输出0
【函数原型】:
FUNC num Compare(string string1, string string2  switch  IgnoreCas)
【使用方法】:TPWrite ""num:=Compare("1234a","1234A"IgnoreCas);
【输出结果】: 0【函数名称】:Concat
【函数功能】:将输入的字符串数组进行拼接
【参数输入】: string 字符串数组
【参数输出】:string
【函数原型】:
FUNC string  Concat(string strArray{*})
【使用方法】:
VAR string StrArray{3}:=["ABB","IRB","120"];
TPWrite(Concat(StrArray));
【输出结果】:“ABBIRB120”【函数名称】:ConcatByte
【函数功能】:将输入的Byte数组进行拼接
【参数输入】: Byte字节数组
【参数输出】:string
FUNC string  ConcatByte(Byte ByteArray{*})
【使用方法】:
var byte byteAray{9}:=[65,66,66,73,82,66,49,50,48];
TPWrite(ConcatByte(byteAray));
【输出结果】:“ABBIRB120”【函数名称】:IndexOf
【函数功能】:寻找特定字符的下标
【参数输入】:被查找字符所在的下标 如果在指定区域内没有找到则返回 -1
value 母字符
strTarget 被查找的字符startIndex起始的下标 
Count 检索的长度范围
comparisonType 是否忽略大小写
【参数输出】:string
FUNC num IndexOf(string value,string strTarget, num startIndex, num count, num comparisonType)
【使用方法】:
TPWrite
" "
Num:=IndexOf("12345B7789B","b",1,9,StringComparison.OrdinalIgnoreCase);
解释:从字符串:"12345B7789B" 第1位开始,往后寻找9位字符“b”,忽略字符大小写
【输出结果】:6 因为B所在的下标是6
TPWrite" "Num:=IndexOf("12345B7789B","b7",1,9,StringComparison.OrdinalIgnoreCase);
【输出结果】:6

Main函数大致如下调用:

    PROC main()
!        InitStringData;
!        name:=" 123"+" "+" 456 ";
!        result:=StringTrim(name,TrimStart);
!        var string result;
!        result:=PadRight("1",4,"B");
!        TPWrite ""num:=Compare("1234a","1234A"IgnoreCas);
!        VAR string StrArray{3}:=["ABB","IRB","120"];!        var byte byteAray{9}:=[65,66,66,73,82,66,49,50,48];
!        TPWrite(ConcatByte(byteAray));
!        InitStringData;
!        TPWrite " "Num:=IndexOf("12345B7789B","b7",1,9,StringComparison.IgnoreCase);stop;ENDPROC

上面就是我写的函数的使用方法,如果使用中出现什么报错或者Bug可以在帖子下面留言,我看到帖子会第一时间帮大家解决问题。

包含的可以调用的函数大致如下:

0407d7227a96221d2a5f73dc15a292a7.png
上图是暂时可以调用的全部函数

希望这个帖子个给大家带来帮助.

线面是代码的下载链接地址:

链接:https://pan.baidu.com/s/1MQGTccNKBt09CkfnEYgacA 密码:a15a

我后续会看看怎么上传到GitHub并在代码成熟的时候开源

大家有什么建议和需要添加的功能我看看怎么修改并添加新的功能

使用方法:

  1. 往ABB机器人中添加程序模块 :StringModule
  2. 使用函数前先调用InitStringData函数 只需要在程序里面调用一次就可以