QQ登录

只需一步,快速开始

威纶通触摸屏宏指令字符串函数

[ 复制链接 ]
字符串函数
1.     StringGet
语法  StringGet(read_data[start], device_ 函数名称 ,device_type, address_offset, data_count)
获取   PLC  的资料。字符串的数据类型为 字符数组, 是存储在
read_data[start]~read_data[start+data_count-1]  
read_data必须为一维字符数组。
data_count是设定的读取字符的个数,可以是常数也可以是变量。
此处的  device_函数名称,即为在“系统参数” 中建立  PLC 类型时,设定的“PLC
称”。在此,PLC 名称被设定为  FATEK FB Series”,如下图所示。
                              
device_type是设备类型和  PLC 中数据的编码方式。例如:如果  device_type
LW_BIN,那么读取的设备类型为  LW,数据编码方式为 BIN。如果使用  BIN 编码方
式,“_BIN 可以忽略。
如果  device_type   LW_BCD,表示设备类型  LW,数据的编码方式为  BCD 格式。  
address_offset  PLC 中的地址偏移量。
例如,StringGet(read_data_1[0],FATEK FB Series, RT, 5, 1) 代表读取的设备地
址偏移量为  5
如果  address_offset 使用格式为  N#AAAAA”,N 表示  PLC 的站号,AAAAA
示地址偏移量。此情况一般使用在同一个串口上连接有多台  PLC 或者控制器的情
况下。例如:StringGet(read_data_10, FATEK FBSeries, RT, 2#5, 1) 表示读
取站号为  2   PLC 的数据。如果  StringGet()使用  “系统参数  / 设备列表” 中设定
的默认的站号,在此可以不填这个站号。
  PLC 中读取的数据个数,由  data_count 的值来决定,因  read_data 变量仅接
  char 数组类型。如下所示:

威纶通触摸屏宏指令字符串函数图1

威纶通触摸屏宏指令字符串函数图1
read_data的类型  data_count 的值  读取16 位数据的个数
char(8-bit)          1                  1
char(8-bit)          2                  1
因为一个 WORD (16 ) 等于  2   ASCII 字符的长度,当设备类型长度为 WORD
时,根据上表,读取  2   ASCII 字符实际上是读  1 WORD 的数据。
例如:
macro_commandmain()
charstr1[20]
//  读取  LW-0 ~ LW-9   10    WORD  到变数  str1[0]   str1[19]  
//    1 WORD 可存放  2    ASCII  字符,欲读取  20    ASCII  字符
//  实际上共读取了  10  WORD
StringGet(str1[0],‚Local HMI‛, LW, 0, 20)
endmacro_command
2.     StringGetEx
语法  StringGetEx (read_data[start], device_ , device_type,address_offset, data_count)
获取  PLC  的数据,不等待  PLC  响应,径自往下执行。
read_datadevice_函数名称、device_typeaddress_offset    data_count 的说明
  GetData 相同。
例如:
macro_commandmain()
charstr1[20]
shorttest=0
//    MODBUS 设备未回应,test = 1将照常执行
StringGetEx(str1[0],"MODBUS RTU", 4x, 0, 20)
test = 1
//    MODBUS 设备未响应,test = 2  将不会被执行,直到得到响应
StringGet(str1[0],"MODBUS RTU", 4x, 0, 20)
test = 2
endmacro_command
3.     StringSet
语法  StringSet (send_data[start], device_ 函数名称 ,device_type, address_offset, data_count)
将数据写到   PLC  中。字符串数据保存在
send_data[start]~send_data[start+data_count-1]中,send_data 必须为一维
字符数组类型。
data_count是写入到  PLC 中字符数据的个数,可以是常数也可以是变量。
device_函数名称详见上面的说明,在此不再说明。
device_type是设备类型和  PLC 中数据的编码方式。例如:如果  device_type
LW_BIN,那么读取的设备类型为  LW,数据编码方式为  BIN。如果使用  BIN 编码方
式,“_BIN 可以忽略。
如果  device_type   LW_BCD,表示设备类型  LW,数据的编码方式为  BCD格式。  
address_offset  PLC 中的地址偏移量。
例如,StringSet(read_data_1[0],FATEK FB Series, RT, 5, 1) 代表读取的设备地
址偏移量为  5
如果  address_offset 使用格式为  N#AAAAA”, N 表示  PLC 的站号,   AAAAA
示地址偏移量。此情况一般使用在同一个串行埠上连接有多台  PLC 或者控制器的情
况下。例如:StringSet(send_data_1[0],FATEK FB Series, RT, 2#5, 1) 表示设
定站号为  2   PLC 的数据。如果  StringSet() 使用  “系统参数  / 设备列表” 中设
定的默认的站号,在此可以不填这个站号。
设定到  PLC 的资料个数,根据  data_count 的值来决定,因  send_data 变量仅接
  char 数组类型。如下所示:
sead_data的类型  data_count 的值  设定  16 位数据的个数
char(8-bit)           1                     1
char(8-bit)           2                     1
因为一个 WORD (16 ) 等于  2   ASCII 字符的长度,当设备类型长度为 WORD
时,根据上表,写入  2   ASCII 字符实际上是写  1 WORD 的数据。宏指令会
以先写  low byte 再写  hight byte 的顺序,依序将  ASCII 字符写入。
使用  “字符显示” 元件显示数据时,data_count 必须填入  2 的倍数才能正确显示。
如:macro_commandmain()
charsrc1[10]="abcde"
StringSet(src1[0],"Local HMI", LW, 0, 5)
endmacro_command
  data_count 为一个大于或等于字符串长度的偶数时,可以完整显示整个字符串:
macro_commandmain()
charsrc1[10]="abcde"
StringSet(src1[0],"Local HMI", LW, 0, 6)
endmacro_command
例如:
macro_commandmain()
charstr1[10]= ‚abcde‛
//  字符串  str1  写入  LW-0 ~ LW-2 共三个  WORD
//  即使  data_count   10,写到第  3    WORD  时发现字符串已结束,
//  便不再写入后面的数据
StringSet(str1[0],"Local HMI", LW, 0, 10)
end macro_command
4.     StringSetEx
函数名称  StringSetEx
语法  StringSetEx(send_data[start], device_ 函数名称 ,device_type, address_offset, data_count)
将数据写到  PLC  中,不等待  PLC  回应,径自往下执行。
send_datadevice_函数名称、device_typeaddress_offset    data_count的说明
  StringSet 相同。
例如:
macro_commandmain()
charstr1[20]= ‚abcde‛
shorttest=0
//    MODBUS 设备未回应,test = 1  将照常执行
StringSetEx(str1[0],"MODBUS RTU", 4x, 0, 20)
test = 1
//    MODBUS 设备未响应,test = 2  将不会被执行,直到得到响应
StringSet(str1[0],"MODBUS RTU", 4x, 0, 20)
test = 2
endmacro_command
5.     StringCopy
语法  success = StringCopy ([source],destination[start])
success= StringCopy (source[start], destination[start])
利用此函数进行字符串的复制。此函数可以将传入的静态字符串  (以双引号‛‛
括起来的字符串),或是存放在字符数组中的字符串复制到目的  buffer
来源字符串  sourc e可以为静态字符串  (  ‚source‛ )或是一维字符数组变量
(source[start])
Destination[start]  必须为一维字符数组变量。
复制完毕会回传一  bool  类型的值给  success 字段。当复制成功,success等于
true,否则等于  false。当来源字符串的长度大于目的  buffer 的大小时,将不做任
何处理,并回传  false    success 字段。
success  字段可写可不写。
例如:
macro_commandmain()   
charsrc1[5] = "abcde"
chardest1[5]
boolsuccess1
success1= StringCopy(src1[0], dest1[0])
//success1=truedest1  ‚abcde‛
chardest2[5]
boolsuccess2
success2= StringCopy("12345", dest2[0])  
//success2 = truedest2  ‚12345‛
charsrc3[10] = "abcdefghij"
chardest3[5]
boolsuccess3
success3= StringCopy(src3[0], dest3[0])
//success3 = falsedest3内容不变
charsrc4[10] = "abcdefghij"
chardest4[5]
boolsuccess4
success4= StringCopy(src4[5], dest4[0])
//success4=truedest4  ‚fghij‛
endmacro_command
6.     StringDecAsc2Bin
success= StringDecAsc2Bin(source[start], destination)
  success = StringDecAsc2Bin(‚source‛,destination)
此函数将十进制字符串转换成整数。
来源字符串  source 可以为静态字符串  (  ‚source‛ )或是一维字符数组变量
(source[start])
destination  必须为一变量,用以存放转换后的整数值。
执行完毕会回传一  bool  类型的值给  success 字段。当转换成功,success等于
true,否则等于  false
来源字符串必需为十进制字符串,若其包含  0  ~ 9  以外的字符,函数将
会回传false
success  字段可写可不写。
例如:
macro_commandmain()   
charsrc1[5] = "12345"
intresult1
boolsuccess1
success1= StringDecAsc2Bin(src1[0], result1)
//success1 = trueresult1    ‚12345‛
charresult2
boolsuccess2
success2= StringDecAsc2Bin("32768", result2)  
//success2 = true,但结果超出  result2  所能表达的范围
charsrc3[2] = "4b"
charresult3
boolsuccess3
success3= StringDecAsc2Bin (src3[0], result3)
//success3 = false,因  src3  包含  0 ~ 9  以外的字符
endmacro_command
7.     StringBin2DecAsc
语法  success = StringBin2DecAsc (source,destination[start])
此函数将整数转换成十进制字符串。
来源  source 可以为常数或变量。
destination‛start‛  必须为一维字符数组变量,用以存放转换后的十进制字符串。
执行完毕会回传一  bool  类型的值给  success 字段。当转换成功,success等于
true,否则等于  false
若转换后的十进制字符串长度大于目标数组的大小,函数将会回传  false
success  字段可写可不写。
例如:
macro_commandmain()   
int src1= 2147483647
chardest1[20]
boolsuccess1
success1= StringBin2DecAsc(src1, dest1[0])
//success1 = truedest1  ‚2147483647‛
shortsrc2 = 0x3c
chardest2[20]
boolsuccess2
success2= StringBin2DecAsc(src2, dest2[0])
//success2 = truedest2  ‚60‛
int src3= 2147483647
chardest3[5]
boolsuccess3
success3= StringBin2DecAsc(src3, dest3[0])
//success3 = falsedest3  内容不变
endmacro_command
8.     StringDecAsc2Float
语法  success = StringDecAsc2Float (source[start],destination)
success =StringDecAsc2Float (‚source‛, destination)
此函数将十进制字符串转换成浮点数。
来源字符串  source 可以为静态字符串  (  ‚source‛ )或是一维字符数组变量
(  source[start] )
destination  必须为一变量,用以存放转换后的浮点数值。
执行完毕会回传一  bool  类型的值给  success 字段。当转换成功,success等于
true,否则等于  false
来源字符串必需为十进制字符串,若其包含  0 ~ 9    .  以外的字符,
函数将会回传  false
success  字段可写可不写。
macro_commandmain()   
charsrc1[10] = "12.345"
floatresult1
boolsuccess1
success1= StringDecAsc2Float(src1[0], result1)
//success1 = trueresult1    ‚12.345‛
floatresult2
boolsuccess2
success2= StringDecAsc2Float("1.234567890", result2)   
//success2 = true,但结果超出  result2  所能表达的范围,可能丧失精确度
charsrc3[2] = "4b"
floatresult3
boolsuccess3
success3= StringDecAsc2Float(src3[0], result3)
//success3 = false,因  src3  包含  0 ~ 9’或  .  以外的字符
endmacro_command
9.     StringFloat2DecAsc
语法  success = StringFloat2DecAsc(source,destination[start])
此函数将浮点数转换成十进制字符串。
来源  source 可以为常数或变量。
Destination[start]  必须为一维字符数组变量,用以存放转换后的十进制字符串。
执行完毕会回传一  bool  类型的值给  success 字段。当转换成功,success等于
true,否则等于  false。
若转换后的十进制字符串长度大于目标数组的大小,函数将会回传  false。
success  字段可写可不写。
例如:
macro_command main()   
float src1 = 1.2345
char dest1[20]
bool success1
success1 = StringFloat2DecAsc(src1, dest1[0])
// success1 = true,dest1为  ‚1.2345‛
float src2 = 1.23456789
char dest2 [20]
bool success2
success2 = StringFloat2DecAsc(src2, dest2 [0])
// success2 = true,但可能丧失精确度
float src3 = 1.2345
char dest3[5]
bool success3
success3 = StringFloat2DecAsc(src3, dest3 [0])
// success3 = false,dest3  内容不变
end macro_command
10.  StringHexAsc2Bin
语法  success = StringHexAsc2Bin (source[start],destination)
或 success =StringHexAsc2Bin (‚source‛, destination)
此函数将十六进制字符串转换成整数。
来源字符串  source 可以为静态字符串  (如  ‚source‛ )或是一维字符数组变量
(如  source‛start‛)。
destination  必须为一变量,用以存放转换后的整数值。
执行完毕会回传一  bool  类型的值给  success 字段。当转换成功,success等于
true,否则等于  false。
来源字符串必需为十六进制字符串,若其包含 ‘0’ ~ ‘9’  或 ‘a’ ~ ‘f’  或
‘A’ ~  ‘F’  以外的字符,函数将会回传  false。
success  字段可写可不写。
例如:
macro_command main()   
char src1[5]="0x3c"
int result1
bool success1
success1 = StringHexAsc2Bin(src1[0], result1)
// success1 = true,result1  为  3c
short result2
bool success2
success2 = StringDecAsc2Bin("1a2b3c4d", result2)   
// success2 = true,但结果超出  result2  所能表达的范围,result2 =3c4d
char src3[2] = "4g"
char result3
bool success3
success3 = StringDecAsc2Bin (src3[0], result3)
// success3=false,因  src3包含 ‘0’ ~ ‘9’  或 ‘a’ ~ ‘f’  或 ‘A’ ~ ‘F’
以外的字符
end macro_command
11.  StringBin2HexAsc
语法  success = StringBin2HexAsc (source,destination[start])
此函数将整数转换成十六进制字符串。
来源source可以为常数或变量。
Destination[start]  必须为一维字符数组变量,用以存放转换后的十六进制字符串。  
执行完毕会回传一  bool  类型的值给  success 字段。当转换成功,success等于
true,否则等于  false
若转换后的十六进制字符串长度大于目标数组的大小,函数将会回传  false
success  字段可写可不写。
例如:
macro_commandmain()   
int src1= 20
chardest1[20]
boolsuccess1
success1= StringBin2HexAsc(src1, dest1[0])
//success1 = truedest1    ‚14‛
shortsrc2 = 0x3c
chardest2[20]
bool success2
success2= StringBin2HexAsc(src2, dest2[0])
//success2 = truedest2    ‚3c‛
int src3= 0x1a2b3c4d
chardest3[6]
boolsuccess3
success3= StringBin2HexAsc(src3, dest3[0])
//success3 = falsedest3  内容不变
endmacro_command
12.  StringMid
语法  success = StringMid (source[start], count,destination[start])
success = StringMid(‚string‛, start, count, destination[start])
利用此函数可将一个字符串中的某一段子字符串提取出来。
来源字符串  source 可以为静态字符串  (  ‚source‛)或是一维字符数组变量
(  source[start])。当来源字符串为字符数组变量时,由数组下标决定子字符串起
始位置。当来源字符串为静态字符串时,由第二个参数  start  决定子字符串起始
位置。
count  决定要提取的子字符串长度。
Destination[start]  必须为一维字符数组变量,用以存放提取出来的子字符串。
执行完毕会回传一  bool  类型的值给  success 字段。当执行成功,success等于
true,否则等于  false
若提取出来的子字符串长度大于目标数组的大小,函数将会回传false
success  字段可写可不写。
例如:
macro_commandmain()   
charsrc1[20] = "abcdefghijklmnopqrst"
chardest1[20]
boolsuccess1
success1= StringMid(src1[5], 6, dest1[0])
//success1 = truedest1    ‚fghijk‛
charsrc2[20] = "abcdefghijklmnopqrst"
chardest2[5]
boolsuccess2
success2= StringMid(src2[5], 6, dest2[0])
//success2 = falsedest2  内容不变
chardest3[20] = "12345678901234567890"
boolsuccess3
success3= StringMid("abcdefghijklmnopqrst", 5, 5, dest3[15])
//success3 = truedest3 = ‚123456789012345fghij‛
endmacro_command
13.  StringLength
length =StringLength (source[start])
length =StringLength ([source])
取得字符串的长度。
来源字符串  source 可以为静态字符串  (  ‚source‛) 或是一维字符数组变量
(  source[start])
函数回传值代表来源字符串的长度。
例如:
macro_commandmain()   
charsrc1[20] = "abcde"
intlength1
length1=StringLength(src1[0])
//length1 = 5
charsrc2[20] = { 'a', 'b' , 'c' , 'd' , 'e' }
intlength2
length2=StringLength(src2[0])
//length2 = 20
charsrc3[20] = "abcdefghij"
intlength3
length3= StringLength(src3 [2])
//length3 = 8
end macro_command
14.  StringCat
语法  success = StringCat (source[start],destination[start])
success = StringCat(‚source‛, destination[start])
利用此函数将来源字符串衔接于目标字符串之后。此函数执行成功后,目标字符
串将等于两字符串衔接后的结果。
来源字符串source可以为静态字符串  (  ‚source‛) 或是一维字符数组变量
(source[start])
Destination[start]必须为一维字符数组变量。
执行完毕会回传一  bool  类型的值给  success 字段。当执行成功,success等于
true,否则等于  false。当两字符串衔接后的长度超过目标数组的长度时,目标字
符串将保留衔接以前的内容,不做任何改变,并回传  false
例如:macro_commandmain()   
charsrc1[20] = "abcdefghij"
chardest1[20] = "1234567890"
boolsuccess1
success1=StringCat(src1[0], dest1[0])
//success1 = truedest1 = "123456790abcdefghij"
chardest2 [10] = "1234567890"
boolsuccess2
success2=StringCat("abcde", dest2 ‚0‛)
//success2 = falsedest2  内容不变
charsrc3[20] = "abcdefghij"
chardest3[20]
boolsuccess3
success3= StringCat(src3[0], dest3[15])
//success3 = falsedest3内容不变
endmacro_command
15.  StringCompare
语法  ret = StringCompare (str1[start],str2[start])
ret =StringCompare (‚string1‛, str2[start])
ret =StringCompare (str1[start], ‚string2‛)
ret =StringCompare (‚string1‛, ‚string2‛)
比较两字符串的内容是否相等。此函数将大小写视为不同。
两个传入的字符串皆可以为静态字符串  (  ‚source‛)或是一维字符数组变量
(  source[start])
执行完毕会回传一  bool类型的值给  ret  字段。若两字符串相等,ret    true,否
则为  false
例如:
macro_commandmain()   
chara1[20] = "abcde"
charb1[20] = "ABCDE"
boolret1
ret1 =StringCompare(a1[0], b1[0])
// ret1= false
chara2[20] = "abcde"
charb2[20] = "abcde"
boolret2
ret2 =StringCompare(a2[0], b2[0])
// ret2= true
char a3[20] = "abcde"
charb3[20] = "abcdefg"
boolret3
ret3 =StringCompare(a3‛0‛, b3‛0‛)
// ret3= false
endmacro_command
16.  StringCompareNoCase
语法  ret = StringCompareNoCase(str1[start],str2[start])
ret =StringCompareNoCase(‚string1‛, str2[start])
ret =StringCompareNoCase(str1[start], ‚string2‛)
ret =StringCompareNoCase(‚string1‛, ‚string2‛)
比较两字符串的内容是否相等。此函数将大小写视为相同。
两个传入的字符串皆可以为静态字符串  (  ‚source‛) 或是一维字符数组变量
(  source[start])
执行完毕会回传一  bool  类型的值给  ret  字段。若两字符串相等,ret    true
否则为  false
例如:
macro_commandmain()   
chara1[20] = "abcde"
charb1[20] = "ABCDE"
boolret1
ret1 =StringCompareNoCase(a1[0], b1[0])
// ret1= true
chara2[20] = "abcde"
charb2[20] = "abcde"
boolret2
ret2 =StringCompareNoCase(a2[0], b2[0])
// ret2= true
char a3[20] = "abcde"
charb3[20] = "abcdefg"
boolret3
ret3 =StringCompareNoCase(a3[0], b3[0])
// ret3= false
endmacro_command
17.  StringFind
语法  position = StringFind (source[start],target[start])
position= StringFind (‚source‛, target[start])
position= StringFind (source[start], ‚target‛)
position= StringFind (‚source‛, ‚target‛)
寻找某一字符串  (target) 在另一个字符串  (source)  里第一次出现的位置。
两个传入的字符串皆可以为静态字符串  (  ‚source‛) 或是一维字符数组变量
(  source[start])
执行完毕会回传target字符串在  source 字符串里出现的位置。Source  字符串由  0
开始递增为字符编索引值。若  source 字符串存在一个子字符串,其所包含的字符
与排列顺序跟  target 字符串完全相等,则函数会回传此子字符串开头的索引值,
若没有找到,则回传  -1
例如:
macro_commandmain()   
charsrc1[20] = "abcde"
chartarget1[20] = "cd"
short pos1
pos1 =StringFind(src1[0], target1[0])
// pos1= 2
chartarget2[20] = "ce"
shortpos2
pos2 =StringFind( "abcde", target2‛0‛)
// pos2= -1
charsrc3[20] = "abcde"
shortpos3
pos3 =StringFind(src3[3], "cd")
// pos3= -1
endmacro_command
18.  StringReverseFind
语法  position = StringReverseFind (source[start],target[start])
position= StringReverseFind (‚source‛, target[start])
position= StringReverseFind (source[start], ‚target‛)
position= StringReverseFind (‚source‛, ‚target‚)
寻找某一字符串  (target) 在另一个字符串  (source)  里最后一次出现的位置。
两个传入的字符串皆可以为静态字符串  (  ‚source‛) 或是一维字符数组变量
(  source[start])
执行完毕会回传  target 字符串在  source  字符串里最后一次出现的位置。source
字符串由  0  开始递增为字符编索引值。若  source 字符串存在一个子字符串,其
所包含的字符与排列顺序跟  target 字符串完全相等,则函数会回传此子字符串开
头的索引值,若没有找到,则回传  -1。若  source 字符串中存在多个与  target
符串相等的子字符串,则回传最后一个出现的子字符串的位置。
例如:
macro_commandmain()   
charsrc1[20] = "abcdeabcde"
chartarget1[20] = "cd"
shortpos1
pos1 =StringReverseFind(src1[0], target1[0])
// pos1= 7
chartarget2[20] = "ce"
shortpos2
pos2 =StringReverseFind( "abcdeabcde" , target2[0])
// pos2= -1
charsrc3[20] = "abcdeabcde"
shortpos3
pos3 =StringReverseFind(src3[6], "ab")
// pos3= -1
endmacro_command
9.StringFindOneOf
语法  position = StringFindOneOf (source[start],target[start])
position= StringFindOneOf (‚source‛, target[start])
position= StringFindOneOf (source[start], ‚target‛)
position= StringFindOneOf (‚source‛, ‚target‛)
寻找  target 字符串中任一个字符在  source  字符串中第一次出现的位置。
两个传入的字符串皆可以为静态字符串  (  ‚source‛) 或是一维字符数组变量
(  source[start])
执行完毕会回传  target 字符串中任一个字符在  source  字符串里第一次出现的位
置,即  source 字符串中为该字符编的索引值  (  0  开始)。若没有找到,则回传
-1
例如:
macro_commandmain()   
charsrc1[20] = "abcdeabcde"
chartarget1[20] = "sdf"
shortpos1
pos1 =StringFindOneOf(src1[0], target1[0])
// pos1= 3
charsrc2[20] = "abcdeabcde"
shortpos2
pos2 =StringFindOneOf(src2[1], "agi")
// pos2= 4
chartarget3 [20] = "bus"
shortpos3
pos3 =StringFindOneOf("abcdeabcde", target3[1])
// pos3= -1
endmacro_command
19.  StringIncluding
语法  success = StringIncluding (source[start],set[start], destination[start])
success= StringIncluding (‚source‛, set[start], destination[start])
success= StringIncluding (source[start], ‚set‛, destination[start])
success= StringIncluding (‚source‛, ‚set‛, destination[start])
提取  source 字符串中某个以索引值  0  的字符  (第一个字符)  开头的子字符串,
而且此子字符串的每个字符都能在  set  字符串中找到相同的字符。此函数将会从
source  字符串的第一个字符开始寻找,直到找到不存在于  set  字符串中的字符为
止。
source  字符串与  set  字符串皆可以为静态字符串  (  ‚source‛) 或是一维字符
数组变量  (  source[start])
执行完毕会回传一  bool  类型的值给  success 字段。当执行成功,success等于
true,否则等于  false。当提取出来的字符串长度大于目标数组的大小,将会回传
false
例如:
macro_commandmain()   
charsrc1[20] = "cabbageabc"
charset1[20] = "abc"
chardest1[20]
boolsuccess1
success1= StringIncluding(src1[0], set1[0], dest1[0])
// success1= truedest1 = “cabba”
charsrc2[20] = "gecabba"
chardest2[20]
boolsuccess2
success2= StringIncluding(src2[0], "abc", dest2[0])
//success2 = truedest2 = ‚ “”
charset3[20] = "abc"
chardest3[4]
boolsuccess3
success3= StringIncluding("cabbage", set3[0], dest3[0])
//success3 = falsedest3内容不变
endmacro_command
20.  StringExcluding
语法  success = StringExcluding (source[start],set[start], destination[start])
success= StringExcluding (‚source‛, set[start], destination[start])
success= StringExcluding (source[start], ‚set‛, destination[start])
success= StringExcluding (‚source‛, ‚set‛, destination[start])
提取  source 字符串中某个以索引值  0  的字符  (第一个字符)  开头的子字符串,
而且此子字符串的每个字符必不存在于set字符串中。此函数将会从  source字符串
的第一个字符开始寻找,直到找到存在于  set  字符串中的字符为止。
source  字符串与  set  字符串皆可以为静态字符串  (  ‚source‛) 或是一维字符
数组变量  (  source[start])
执行完毕会回传一  bool  类型的值给  success 字段。当执行成功,success等于
true,否则等于  false。当提取出来的字符串长度大于目标数组的大小,将会回传
false
例如:
macro_commandmain()   
charsrc1[20] = "cabbageabc"
charset1[20] = "ge"
chardest1[20]
boolsuccess1
success1= StringExcluding(src1[0], set1[0], dest1[0])
//success1 = truedest1 = "cabba"
charsrc2[20] = "cabbage"
chardest2[20]
boolsuccess2
success2= StringExcluding(src2[0], "abc", dest2[0])
//success2 = truedest2 =" "
charset3[20] = "ge"
chardest3[4]
boolsuccess3
success3= StringExcluding("cabbage", set3[0], dest3[0])
//success3 = falsedest3  内容不变
endmacro_command
21.  StringToUpper
语法  success = StringToUpper (source[start],destination[start])
success= StringToUpper (‚source‛, destination[start])
  source 字符串的字符全部转换成大写,并写入  destination  字符串。
source  字符串可以为静态字符串  (  ‚source‛) 或是一维字符数组变量  (
source[start])
执行完毕会回传一  bool  类型的值给  success 字段。当执行成功,success等于
true,否则等于  falsesource  字符串长度大于目标数组的大小,将会回传  false
例如:
macro_commandmain()   
charsrc1[20] = "aBcDe"
chardest1[20]
boolsuccess1
success1= StringToUpper(src1[0], dest1[0])
//success1 = truedest1 = ‚ABCDE‛
char dest2[4]
boolsuccess2
success2= StringToUpper("aBcDe", dest2[0])
//success2 = falsedest2  内容不变
endmacro_command
22.  StringToLower
语法  success = StringToLower (source[start],destination[start])
success= StringToLower (‚source‛, destination[start])
  source 字符串的字符全部转换成小写,并写入  destination  字符串。
source  字符串可以为静态字符串  (  ‚source‛)或是一维字符数组变量  (
source[start])
执行完毕会回传一  bool  类型的值给  success 字段。当执行成功,success等于
true,否则等于  falsesource  字符串长度大于目标数组的大小,将会回传  false  
例如:
macro_commandmain()   
charsrc1[20] = "aBcDe"
chardest1[20]
boolsuccess1
success1= StringToUpper(src1[0], dest1[0])
//success1 = truedest1 = ‚abcde‛
chardest2[4]
boolsuccess2
success2= StringToUpper("aBcDe", dest2[0])
//success2 = falsedest2  内容不变
endmacro_command
23.  StringToReverse
语法  success = StringToReverse (source[start],destination[start])
success= StringToReverse (‚source‛, destination[start])
例如:
  source 字符串反转,并写入  destination  字符串。
source  字符串可以为静态字符串  (  ‚source‛) 或是一维字符数组变量  (
source[start])
执行完毕会回传一  bool  类型的值给  success 字段。当执行成功,success等于
true,否则等于  falsesource  字符串长度大于目标数组的大小,将会回传  false
例如:
macro_commandmain()   
charsrc1[20] = "abcde"
chardest1[20]
boolsuccess1
success1= StringToUpper(src1[0], dest1[0])
//success1 = truedest1 = “edcba”
chardest2[4]
boolsuccess2
success2= StringToUpper("abcde", dest2[0])
//success2 = falsedest2  内容不变
endmacro_command
24.  StringTrimLeft
语法  success = StringTrimLeft (source[start],set[start], destination[start])
success= StringTrimLeft (‚source‛, set[start], destination[start])
success= StringTrimLeft (source[start], ‚set‛, destination[start])
success= StringTrimLeft (‚source‛, ‚set‛, destination[start])   source 字符串的第一个字符开始往后寻找,若找到与  set  字符串相同的字符
便裁剪掉该字符,直到遇到不存在于  set  字符串中的字符为止。
source  字符串与  set  字符串皆可以为静态字符串  (  ‚source‛) 或是一维字符
数组变量  (  source[start])
执行完毕会回传一  bool  类型的值给  success 字段。当执行成功,success等于
true,否则等于  false。当裁剪完后的字符串长度大于目标数组的大小,将会回传
false
例如:
macro_commandmain()   
charsrc1[20] = "# *a*#bc"
charset1[20] = "# *"
chardest1[20]
boolsuccess1
success1= StringTrimLeft (src1[0], set1[0], dest1[0])
//success1 = truedest1 = "a*#bc"
charset2[20] = {'#', ' ', '*'}
chardest2[4]
success2= StringTrimLeft ("# *a*#bc", set2[0], dest2[0])
//success2 = falsedest2  内容不变
charsrc3[20] = "abc *#"
chardest3[20]
boolsuccess3
success3= StringTrimLeft (src3[0], "# *", dest3[0])
//success3 = truedest3 = "abc *#"
endmacro_command
25.  StringTrimRight
语法  success = StringTrimRight (source[start],set[start], destination[start])
success= StringTrimRight (‚source‛, set[start], destination[start])
success= StringTrimRight (source[start], ‚set‛, destination[start])
success= StringTrimRight (‚source‛, ‚set‛, destination[start])
  source 字符串的最后一个字符开始往前寻找,若找到与  set  字符串相同的字
符便裁剪掉该字符,直到遇到不存在于  set  字符串中的字符为止。
source  字符串与  set  字符串皆可以为静态字符串  (  ‚source‛) 或是一维字符
数组变量  (  source[start])
执行完毕会回传一  bool  类型的值给  success 字段。当执行成功,success等于
true,否则等于  false。当裁剪完后的字符串长度大于目标数组的大小,将会回传
false
例如:
macro_commandmain()   
charsrc1[20] = "# *a*#bc# * "
charset1[20] = "# *"
chardest1[20]
boolsuccess1
success1= StringTrimRight(src1[0], set1[0], dest1[0])
//success1 = truedest1= ‚# *a*#bc‛
charset2[20] = {'#', ' ', '*'}
chardest2[20]
success2= StringTrimRight("# *a*#bc", set2[0], dest2[0])
//success2 = truedest2 = ‚# *a*#bc‛
charsrc3[20] = "ab**c *#"
chardest3[4]
boolsuccess3
success3= StringTrimRight(src3[0], "# *", dest3[0])
//success3 = falsedest3  内容不变
endmacro_command
26.  StringInsert
语法  success = StringInsert (pos, insert[start],destination[start])
success= StringInsert (pos, ‚insert‛, destination[start])
success= StringInsert (pos, insert[start], length, destination[start])
success= StringInsert (pos, ‚insert‛, length, destination[start])
  insert 字符串插入到目标字符串中的特定位置,插入位置由  pos  所指定。
Insert  字符串可以为静态字符串  (  ‚insert‛) 或是一维字符数组变量  (
insert[start])
用户亦可以在  length 字段指定  insert  字符串的长度。
执行完毕会回传一  bool  类型的值给  success 字段。当执行成功,success等于
true,否则等于  false。当插入完成后的字符串长度大于目标数组的大小,将会回
  false
例如:
macro_commandmain()
charstr1[20] = "but the question is"
charstr2[10] = ", that is"
chardest[40] = "to be or not to be"
boolsuccess
success= StringInsert(18, str1[3], 13, dest[0])
//success = true, dest = "to be or not to be the question"
success= StringInsert(18, str2[0], dest[0])
//success=true, dest="to be or not to be, that is the question"
success= StringInsert(0, "Hamlet:", dest[0])
//success = false, dest  内容不变
endmacro_command

回复

使用道具 举报

快速回复 返回列表 客服中心 搜索