SimTalk常用函数介绍(二):数组操作相关函数
SimTalk中数组特点:
- 第一个元素编号为1。
- 当定义数组类型为any时,数组中不同的元素可以为不同的类型。
- 数组的数据类型可以是list和table
常用函数:
makeArray(<Value1> [,<Value2>, …])
将多个值整合为一个一维数组。
示例:local intArrayVar : integer[2] := makeArray(1, 2)
isArray(Argument:<Value>)
判断一个变量是不是一个数组,是则返回True,不是则返回False。
示例:isArray(intArrayVar ) 返回值为 True
append(Value:<any>)
向数组中添加数据。
示例:
local arr : string[];
arr.append(“a”);
copyFromTable([SourceRange:<listrange>,] SourceTable:<table>)
将表中的值复制到数组中,当表有多列时,数组必须是二维数组;当表只有一列时,数组为一维数组。
示例:arr.copyFromTable(TableFile) /*将TableFile复制到数组arr中*/
copyFromTableColumn(SourceTable:<table>, Column:<integer>)
将表格中的某一列复制到一维数组中。
示例:arr.copyFromTableColumn(TableFile, 1) /*将TableFile的第一列复制到数组arr中*/
copyToTable(TargetTable:<table> [,Column:<integer>, Row:<integer>])
将数组中的数据复制到表格中。
示例:arr.copyToTable(TableFile) /*arr的值复制到TableFile中*/
copyToTableColumn(TargetTable:<table>, Column:<integer>)
将一维数组中的数据复制到表格的某一列中。
示例:arr.copyToTableColumn(TableFile, 1) /*arr的值复制到TableFile的第一列中*/
delete([Index:<integer>])
删除数组中的某一数据。
示例:
local arr:string[];
arr:=makeArray(“a”,”b”,”c”);
print arr; /*输出值为[“a”,”b”,”c”]*/
arr.delete(2);
print arr; /*输出值为[“a”,”c”]*/
dim
返回一维数组的长度。
示例:local n : integer := arr.dim; /*如果arr为[“a”,”b”,”c”],则n=3*/
find(Value:<any> [,StartIndex:<integer])
查找数组中的值,并返回值的位置,如果找不到则返回0。
示例:
local arr:string[];
arr:=makeArray(“a”,”b”,”c”);
local n:=arr.find(“b”); /*默认从头开始查找,n=2*/
local m:=arr.find(“b”,3); /*定义从第三位开始向后查找,第三位之后无”b”,m=0*/
local p:=arr.find(“d”); /*数组中不存在”d”,p=0*/
insert(Index:<integer>, Value:<any)
向数组中的相应位置插入一个值。
示例:
local arr:string[];
arr:=makeArray(“a”,”b”,”c”);
arr.insert(2,”d”); /*向arr的第二位插入”d”,arr变为[“a”,”d”,”b”,”c”]*/
sort
将数组按照从小到大的顺序排序。
示例:arr.sort;
xDim
返回二维数组的第一个维度的长度。
示例:
local matrix : real[2,3];
local n := matrix.xDim; /*n=2*/
yDim
返回二维数组的第二个维度的长度
示例:
local matrix : real[2,3];
local n := matrix.yDim; /*n=3*/