用 StrTo[…] 类型的函数可以将字符串变量转换为另一个数据类型,下表列出系统自带的字符串转换为其他数据类型的函数:
函数 | 返回值 | 说明 |
StrToAXIS (CHAR strValue[256], AXIS value) | BOOL | 字符串转AXIS类型数据 |
StrToBOOL (CHAR strValue[256], BOOL value) | BOOL | 字符串转布尔类型数据 |
StrToE3AXIS (CHAR strValue[256], E3AXIS value) | BOOL | 字符串转E3AXIS类型数据 |
StrToE6AXIS (CHAR strValue[256], E6AXIS value) | BOOL | 字符串转E6AXIS类型数据 |
StrToE3POS (CHAR strValue[256], E3POS value) | BOOL | 字符串转E3POS类型数据 |
StrToE6POS (CHAR strValue[256], E6POS value) | BOOL | 字符串转E6POS类型数据 |
StrToFRAME (CHAR strValue[256], FRAME value) | BOOL | 字符串转FRAME类型数据 |
StrToINT (CHAR strValue[256], INT value) | BOOL | 字符串转整数类型数据 |
StrToPOS (CHAR strValue[256], POS value) | BOOL | 字符串转POS类型数据 |
StrToREAL (CHAR strValue[256], REAL value) | BOOL | 字符串转实数类型数据 |
具体语法( 以StrToAxis函数为例):
success = StrToAXIS(string, value) |
元素 | 说明 |
success | 返回值的变量类型:BOOL -TRUE:转换成功 -FALSE:转换不成功 |
String | 1.输入的变量类型:CHAR 2.要将其转换为另一个数据类型的字符串变量.3.如果字符串是一个集合,则单个分量必须已通过逗号隔开。 |
Value | 1.输出变量的类型:AXIS |
比如:
DECL BOOL success, value success=StrToBOOL("TRUE", value) ;Value=TRUE
二.字符串变量声明时的长度
函数StrDeclLen() 根据其在程序声明部分中的声明确定字符串变量的长度。语法:
Length = StrDeclLen(StrVar[]) |
元素 | 说明 |
Length | 1.返回值类型:INT |
StrVar[] | 1.变量类型:CHAR[] |
比如:
CHAR ProName[24]INT StrLengthStrLength = StrDeclLen(ProName[]) ;strLength=24
三.字符串变量初始化后的长度
与已在程序初始化部分确定的一样,函数 StrLen() 确定字符串变量的字符串长度。
语法:
Length = StrLen(StrVar[]) |
元素 | 说明 |
Length | 1.返回值类型:INT |
StrVar[] | 1.变量类型:CHAR[] |
比如:
CHAR ProName[24]INT StrLengthProName[24]="Pick_Part"StrLength = StrLen(ProName[]) ;StrLength=9
四.删除字符串变量的内容
函数 StrClear() 用于删除字符串变量的内容。
语法:
Result = StrClear(StrVar[]) |
元素 | 说明 |
Result | 1.返回值类型:BOOL -没有删除字符串变量的内容:FALSE |
StrVar[] | 1.变量类型:CHAR[] |
比如:
IF (NOT StrClear($Loop_Msg[])) THENHALTENDIF
五.扩展字符串变量
用函数StrAdd() 可以给字符串变量扩展其他字符串变量的内容。
语法:
Sum = StrAdd(StrDest[],StrToAdd[]) |
元素 | 说明 |
Sum | 1.返回值类型:INT |
StrDest[] | 1.变量类型:CHAR[]2.待扩展的字符串变量:因为字符串变量 StrDest[ ] 是 CHAR 类型的数组,则单个字符以及常数非法。 |
StrToAdd[] | 1.变量类型:CHAR 框 |
比如:
DECL CHAR A[50], B[50]DECL INT ABA[] = "This is an "B[] = "example"AB = StrAdd(A[],B[]) ;A[]="This is an example";AB=18
六.搜索字符串变量
用函数StrFind() 可以搜索字符串变量的字符串。
语法:
Result = StrFind(StartAt, StrVar[], StrFind[], CaseSens) |
元素 | 说明 |
Result | 1.返回值类型:INT |
StartAt | 1.变量类型:INT |
StrVar[] | 1.变量类型:CHAR 框2.带搜索的字符串 |
StrFind[] | 1.变量类型:CHAR 框2.搜索该字符串 |
CaseSens | #CASE_SENS:要区分大小写。 #NOT_CASE_SENS:不区分大小写。 |
比如:
DECL CHAR A[5]DECL INT BA[]="ABCDE"B = StrFind(1, A[], "AC", #CASE_SENS) ;B=0B = StrFind(1, A[], "a", #NOT_CASE_SENS) ;B=1B = StrFind(1, A[], "BC", #Case_Sens) ;B=2B = StrFind(1, A[], "bc", #NOT_CASE_SENS) ;B=2
七.比较字符串变量
用函数StrComp() 可以比较两个字符串变量。
语法:
Result= StrComp(StrComp1[], StrComp2[], CaseSens) |
元素 | 说明 |
Result | 1.返回值类型:BOOL2.返回值的变量。返还值: -字符串相符:TRUE -字符串不相符:FALSE |
StrComp1[] | 1.变量类型:CHAR[]2.与 StrComp2[] 比较的字符串 |
StrComp2[] | 1.变量类型:CHAR 框 |
CaseSens | #CASE_SENS:要区分大小写。 |
比如:
DECL CHAR A[5]DECL BOOL BA[]="ABCDE"B = StrComp(A[], "ABCDE", #CASE_SENS) ;B=TRUEB = StrComp(A[], "abcde", #NOT_CASE_SENS) ;B=TRUEB = StrComp(A[], "abcd", #NOT_CASE_SENS) ;B=FALSEB = StrComp(A[], "acbde", #NOT_CASE_SENS) ;B=FALSE
八.复制字符串变量
用函数StrCopy() 可以将字符串变量的内容复制到另一个字符串变量。
语法:
Result = StrCopy(StrDest[],StrSource[]) |
元素 | 说明 |
Result | 1.返回值类型:BOOL2.返回值的变量。返还值 -成功地复制了字符串变量:TRUE -没有复制字符串变量:FALSE |
StrDest[] | 1.变量类型:CHAR[]2.将字符串复制到该字符串变量中:因为字符串变量 StrDest[ ] 是 CHAR 类型的数组,则单个字符以及常数非法。 |
StrSource[] | 1.变量类型:CHAR 框 |
比如:
DECL CHAR A[25], B[25]DECL BOOL CA[] = ""B[] = "Example"C = StrCopy(A[], B[]);A[]="Example";C=TRUE
九.小结:
前面主要以系统自带的字符串处理函数展开的,比如数据转换的函数,用户也可以自己通过SREAD指令来实现,这里就不一一详述。另外,用户也可以扩展自己的函数或子程序库来实现一些功能,一便日后快速使用,例如:字符串分割/ 字符串截取/其他数据类型转换字符串/判断字符串中的空格等。——————————————
往期文章回顾: 1.库卡机器人编程之CAST指令 2.库卡机器人编程之系统子程序及函数 3.库卡机器人编程之如何log数据 4.库卡机器人编程之如何判断机器人当前是否到目标位置 5.库卡机器人编程之传统运动编程 6.库卡机器人编程之Frame数据以及位置偏移 7.库卡机器人编程之3点法算Base原点 8.库卡机器人之信息编程及语言切换 9.库卡机器人编程之中断指令 10.库卡机器人之浮点数处理1 11.库卡机器人之坐标偏移 12.库卡机器人之编程运算符1 13.库卡机器人编程之求余 14.库卡机器人编程之程序库 15.库卡机器人编程之欧拉角与四元数转换 16.库卡机器人编程之随机函数 17.库卡机器人编程之BAS程序