首页 > 编程学习 > 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 )==0MACRO END ( "Error" )
ENDIF
DECLARE i 1
WHILE $i<=SIZE(vSelFeatPtNames)DECLARE vPtName  $vSelFeatPtNames[$i]#定义点名义值、实测值、偏差值变量并获取输出到文本文件中DECLARE vPtNomDECLARE vPtMesDECLARE vPtDevMEASURE 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")

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


本文链接:https://www.ngui.cc/zz/1918284.html
Copyright © 2010-2022 ngui.cc 版权所有 |关于我们| 联系方式| 豫B2-20100000