SimTalk常用函数介绍(三):表格操作相关函数
表格的创建:
Plant Simulation中表格可以由以下几种方式定义:TableFile,Variable的Table类型,Table中的列类型为Table,自定义属性中的Table属性,Method中定义的Table类型变量。
除方法中的表变量外,其他种类的表格均为可视化的表格,可以手动格式化表格。方法中表格的创建可以利用一些函数。
示例:
local StringTab: table; / *定义一个默认格式的表格,列数不定,数据类型为string * /
local MixTab: table[integer, string]; / *定义一个有初始格式的表格,共两列,数据类型第一列为整数,第二列为字符串* /
StringTab. create; / *生成StringTab表格,行数不定* /
MixTab.create (4); / *生成MixTab表格,共4行,MixTab为两列四行的表格* /
MixTab.forget; / *删除MixTab表格,删除仅仅删除数据,忘记删除整个表格* /
在程序运行中,方法生成的表格变量是可以打开的。
表格操作函数:
writeRow(Column:<any>, Row:<any>, Value:<any> [,Value:<any>, …, Value:<any>])
填写表格中的一行的数据。
示例:TableFile.writeRow(1,3,”a”,”b”); /*在TalbeFile的第1列、第3行的单元格开始向后写入”a”, “b”两个值*/
copyRangeTo(SourceRange:<listrange>, TargetTable:<any>, TargetColumn:<any>, TargetRow:<any>)
从一个表格中复制数据到另一个表格。
示例:OriginTab.copyRangeTo({1,2}..{4,3}, DesTab, 2, 3); /*将OriginTab表格中从第1列第2行到第4列第3行范围内的数据复制到DesTab表格中,从DesTab表格中的第2列第3行开始复制。
insertRow(Above:<any>)
向表格中插入一个空白行。
示例:TableFile.insertRow(2); /*在TableFile的第2行上方插入一个空白行,原第2行变为第3行*/
insertColumn(RightOfColumn:<any>)
向表格中插入一个空白列。
示例:TableFile.insertColumn(2); /*在TableFile的第2列左侧插入一个空白列,原第2列变为第3列*/
cutRow(Row:<any>)
删除表格中的一行。
示例:TableFile.cutRow(3); /*删除TableFile中的第3行*/
setCursor(Column:<any>, Row:<any>)
设置游标位置。
示例:TableFile.setCursor(1,1); /*将当前游标位置设置为第1行第1列*/
CursorX
当前列游标的位置。
示例:
TableFile.CursorX :=2 ; /*将列游标设置为2*/
TableFile.CursorX; /*获取当前列游标的值*/
CursorY
当前行游标的位置。
示例:
TableFile.CursorY :=2 ; /*将行游标设置为2*/
TableFile.CursorY; /*获取当前行游标的值*/
find(Range:<listrange>, Value:<any>)
查找表格中的值。查找从当前游标位置开始,所以查询结果与当前游标位置相关,使用前要先设置游标位置,查询结束后,游标位置为查询到的值的位置。
示例:
TableFile.setCursor(1,1); /*重置游标位置到 (1,1)*/
TableFile.find({1,1}..{*,*}, “value”); /*在TableFile表格的整张表中查找值 “value”,如存在该值则返回TRUE,不存在则返回FALSE*/
TableFile.CursorY /* “value” 位置的行坐标 */
max([Range:<listrange>, …])
寻找范围内的最大值。查找从当前游标位置开始,所以查询结果与当前游标位置相关,使用前要先设置游标位置,查询结束后,游标位置为查询到的值的位置。
示例:
TableFile.setCursor(1,1); /*重置游标位置到 (1,1)*/
TableFile.max({1,1}..{*,*}); /*在TableFile表格的整张表中查找最大值*/
TableFile.CursorY /*最大值位置的行坐标 */
min([Range:<listrange>, …])
寻找范围内的最小值。查找从当前游标位置开始,所以查询结果与当前游标位置相关,使用前要先设置游标位置,查询结束后,游标位置为查询到的值的位置。
示例:
TableFile.setCursor(1,1); /*重置游标位置到 (1,1)*/
TableFile.min({1,1}..{*,*}); /*在TableFile表格的整张表中查找最小值*/
TableFile.CursorY /*最小值位置的行坐标 */
setDataType(Column:<any> [,Column:<any>, …], DataType:<string>)
设置单元格格式。
示例:
TableFile.setDataType({1,*}..{1,*} , “real”); /*将TableFile第一列数据格式设置为”real” */
getDataType(Column:<any>)
读取单元格格式。
示例:
TableFile.getDataType({1,*}..{1,*}); /*读取TableFile第一列数据格式,返回值为字符型数据*/
initialize([Range:<listrange>, …,] Value:<any>)
初始化表格内容。
示例: TableFile.initialize({1,1}..{1,5},”ok”); /*将TableFile表格{1,1}..{1,5}范围内的单元格的值填入”ok”*/
如有不完善之处,欢迎随时指正。
赞赞赞!!!