Polyworks脚本开发学习笔记(十二)-输出和读取文本文件

Polyworks脚本开发学习笔记(十二)-输出和读取文本文件

Polyworks作为一个测量工具,将测量的数据方便的导出到文本文件则是一项必须的功能。在DATA_FILE这个命令下提供了很多子命令用于完成这一任务。

创建文本文件/增加行

  1. CREATE命令创建文本文件
    在这里插入图片描述
  2. DATA_FILE APPEND 追加字符串,需要指定结尾字符
    DATA_FILE APPEND LINE 追加字符数组之间为空格即一行
    DATA_FILE APPEND LINES 追加字符数组之间为换行符,结果为多行
    在这里插入图片描述
DECLARE vExportTxt "$_PWK_FILES_PATH\features.txt"
DATA_FILE CREATE ( $vExportTxt,,"Yes")
#追加字符数组,以逗号分隔
DECLARE vDataLines1 {"Pt1-test","20.000","30.000","40.000"}
DATA_FILE APPEND ( $vExportTxt, $vDataLines1, ",")
#追加一行字符
DECLARE vDataLines2 {"Pt2-test","50.000","60.000","70.000"}
DATA_FILE APPEND LINE ($vExportTxt,$vDataLines2)
#追加多行字符
DECLARE vDataLine3_4 {"Pt3-test,25.000,35.000,45.000","Pt4-test,55.000,65.000,75.000"}
DATA_FILE APPEND LINES($vExportTxt,$vDataLine3_4)

结果如下: 结合下述效果选择合适的字符追加方式。
在这里插入图片描述

循环读取并输出文本文件

  1. 循环读取并输出文本文件
    结合上述命令,并使用MEASURE CONTROL命令将选择的特征点X方向名义值Nominal,实测值Mesured,以及偏差值
    Devation提取出来输出位一个文本文件,是非常实用的。
#获取所有的选择的特征点
DECLARE vSelFeatPtNames
TREEVIEW FEATURE POINT  NAME SELECTED GET ( vSelFeatPtNames )
IF  SIZE ( vSelFeatPtNames )==0
    MACRO END ( "Error" )
ENDIF
DECLARE i 1
WHILE $i<=SIZE(vSelFeatPtNames)
    DECLARE vPtName  $vSelFeatPtNames[$i]
    #定义点名义值、实测值、偏差值变量并获取输出到文本文件中
    DECLARE vPtNom
    DECLARE vPtMes
    DECLARE vPtDev
    MEASURE CONTROL NOMINAL GET("X",vPtNom,$vPtName)
    MEASURE CONTROL MEASURED GET("X",vPtMes,$vPtName)
    MEASURE CONTROL DEVIATION GET ("X",vPtDev,$vPtName)
    DECLARE vNewPtInfoLine "${vPtName},X,${vPtNom},${vPtMes},${vPtDev}"
    DATA_FILE APPEND LINE ($vExportTxt,$vNewPtInfoLine)
    ++i
ENDWHILE

结果如下:
在这里插入图片描述

读取文本文件某行字段数及文件行数

在这里插入图片描述

  1. 读取文本文件第几行的字段数量
    在这里插入图片描述
#读取文本文件第几行的字段数
DECLARE vExportTxt "$_PWK_FILES_PATH\features.txt"
DECLARE vTxtFields
#读取第3行的字段数,以”,“分隔
DATA_FILE PROPERTIES NB_FIELDS_IN_LINE GET ($vExportTxt,3,vTxtFields,",","On")

在这里插入图片描述
返回的结果为5

  1. 读取文本文件的总行数
    在这里插入图片描述
DECLARE vTxtLines
DATA_FILE PROPERTIES NB_LINES GET ( $vExportTxt,vTxtLines)

读出结果为3行

读取文本文件信息

用READ命令可以读取文本文件的所有行列的值。
在这里插入图片描述

  1. 读取文本文件某几行的列值信息,以数组形式返回
    在这里插入图片描述
DECLARE vReadCol1
DECLARE vReadCol2
DATA_FILE READ COLUMNS ( $vExportTxt,",","Off",1,2,vReadCol1,vReadCol2)
#返回值
#DATA_FILE READ COLUMNS ( "C:\features.txt", ",", "Off", 1, 2, { "Pt4", "Pt6" }, { "X", "X" }  )

在这里插入图片描述
由上图,使用该命令可精确读取任意行数和列数的数据。

  1. 文本文件行的信息读取
    DATA_FILE READ LINE 读取指定行的值返回变量
    DATA_FILE READ LINE_FIELD 读取指定行的指定字段的值返回变量
    DATA_FILE READ LINE_FIELDS 读取指定行的全部字段的值返回变量数组
#读取第1行到字符串
DECLARE vReadLine
DATA_FILE READ LINE ( $vExportTxt,1,vReadLine)
#读取第1行第3个字段(逗号分隔)到字符串
DECLARE vReadField13
DATA_FILE READ LINE_FIELD ( $vExportTxt,1,3,vReadField13,",","Off")
#读取第1行全部字段(逗号分隔)到字符串
DECLARE vReadFields
DATA_FILE READ LINE_FIELDS ( $vExportTxt,1,vReadFields,",","Off")

结果如下:
在这里插入图片描述

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zeng31403

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值