首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >KRL:数组的长度

KRL:数组的长度
EN

Stack Overflow用户
提问于 2014-01-04 04:21:21
回答 3查看 3.1K关注 0票数 3

在KUKA Robot Language (KRL)中,可以获得数组的长度吗?或者,是否有一种方法可以遍历数组中的所有值?目前,我将数组长度存储在一个单独的变量中,如下所示:

代码语言:javascript
复制
; In the DAT file:
DECL CONST INT FOO_LENGTH = 3
DECL CONTS INT FOO[3]
FOO[1] = 12
FOO[2] = 34
FOO[3] = 56

; In the SRC file:
INT IDX
FOR IDX = 1 TO FOO_LENGTH
  do_something(FOO[IDX])
ENDFOR

从本质上讲,我想去掉FOO_LENGTH变量。

EN

回答 3

Stack Overflow用户

发布于 2018-10-30 18:45:18

对于CHAR数组,有一个函数

INT STRDECLLEN (字符STRVAR470:OUT)

这将完成这项工作并确定char数组的长度。例如,你可以写

代码语言:javascript
复制
DEF stringtests( )
char myString[80]
int i,n
n = strdecllen(myString[])
for i = 1 to n
  myString[i] = "Z"
endfor
n = strdecllen(myStringDat[])
for i = 1 to n
  myStringDat[i] = "Z"
endfor
end

带有相应的.dat文件

代码语言:javascript
复制
DEFDAT  stringtests PUBLIC
CHAR myStringDat[10]
myStringDat[]="ZZZZZZZZZZ"
ENDDAT

第二个循环看不到,也不需要知道数组的长度。

不幸的是,似乎没有用于任意数据类型的数组的函数,请参阅http://www.robot-forum.com/robotforum/kuka-robot-forum/kuka-(possibly)-complete-list-of-functions-and-subprograms/下的官方和非官方KRL函数列表。因此,您必须编写函数或子例程,这些函数或子例程同时接受数组名称和长度,或者知道数组长度。

票数 2
EN

Stack Overflow用户

发布于 2014-04-05 00:58:41

这可能太晚了,但它将有助于未来的参考。

不幸的是,没有用于确定数组长度的变量。一旦你定义了它,你就知道你的数字了,所以不要使用FOO_LENGTH,只需输入3。

你不能真的使用循环来确定数组的长度,就好像你碰到了最后一个数字,机器人就会停下来,不知道该怎么办。然而,这是一个漫长的过程,您可以这样做,然后一旦机器人停止,监控值并记录数字,然后跳过循环并在该时刻再次启动。但是这没有任何作用,因为你总是可以返回到DAT文件,并通过查看DECL FOO3来找出你的长度。

希望这能有所帮助。

票数 1
EN

Stack Overflow用户

发布于 2019-05-11 19:54:49

没有系统函数,但您可以自己编写:

代码语言:javascript
复制
DEFFCT INT GetIntArrLength(intarray :OUT)
 DECL INT intArray[]
 DECL INT length
 FOR length = 1 TO 2147483647 STEP 1
  ON_ERROR_PROCEED
  intArray[length] = intArray[length]
  IF ($ERR.NUMBER <> 0) THEN
   ERR_CLEAR($ERR)
   RETURN length - 1
  ENDIF
 ENDFOR
 return -1
ENDFCT

使用它的方法如下:

代码语言:javascript
复制
DEF ArrayLength ( )
 FooLength = GetIntArrLength(Foo[]) 
END
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20912064

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档