UG爱好者

标题: [脚本分享][后处理下载]从CSV文件中读取数据——[配置表]的应用-第二期 [打印本页]

作者: destiny0515    时间: 2020-6-28 16:10
标题: [脚本分享][后处理下载]从CSV文件中读取数据——[配置表]的应用-第二期
上期回顾
让后处理修改变得简单点——[配置表]的应用-第一期
http://www.ugsnx.com/thread-287824-1-1.html
(出处: UG爱好者)

我们也许会觉得txt格式的配置表不够清爽,蜗牛是带有一点点强迫症的。
如果我们做成csv格式的呢?
(, 下载次数: 40)
这样看着会舒服很多吧 :D
那么怎么从后处理中获取数据呢?

这次分享通过运行一个脚本获取csv文件中的数据。
在表格中,设1行A列的单元格坐标为(0,0)
需要获取的值为6行C列,即(5,2);7行C列,即(6,2)

运行脚本
(, 下载次数: 54)
输出结果正确。

以下为脚本代码部分:
  1. proc readCSV { channel { header 1 } { symbol , }} {

  2.        set quote 0

  3.        set data [ split [ read $channel nonewline ] "\n" ]

  4.        foreach line $data {

  5.               set quote [ expr { $quote + [ regexp -all " $line ]}]

  6.               if { [ expr { $quote % 2 }] == "0" } {

  7.                      set quote 0

  8.                      append row_temp $line

  9.                      set row_temp [ split $row_temp , ]   

  10.                      foreach section $row_temp {

  11.                             set quote [ expr { $quote + [ regexp -all " $section ]}]

  12.                             if { [ expr { $quote % 2 }] == "0" } {

  13.                                    append cell_temp $section

  14.                                    set cell_temp [ regsub {"(.*)"} $cell_temp {\1} ]

  15.                                    lappend cell $cell_temp

  16.                                    unset cell_temp

  17.                                    set quote 0

  18.                             } else {

  19.                                    append cell_temp $section$symbol

  20.                             }

  21.                      }

  22.                      lappend final [ regsub -all {""} $cell " ]

  23.                      unset cell

  24.                      unset row_temp

  25.               } else {

  26.                      append row_temp $line\n

  27.               }

  28.        }

  29.        # generate array if needed, or return $final here

  30.        set row [ llength $final ]

  31.        set column [ llength [ lindex $final 0 ]]

  32.        if { $header == 1 } {

  33.               for { set i 0 } { $i < $row } { incr i } {         

  34.                      for { set j 0 } { $j < $column } { incr j } {

  35.                             set csvData([ lindex [ lindex $final 0 ] $j ],$i) [ lindex [ lindex $final $i ] $j ]

  36.                      }

  37.               }

  38.        } else {

  39.               for { set i 0 } { $i < $row } { incr i } {         

  40.                      for { set j 0 } { $j < $column } { incr j } {

  41.                             set csvData($i,$j) [ lindex [ lindex $final $i ] $j ]

  42.                      }

  43.               }

  44.        }

  45.        return [ array get csvData ]

  46. }





  47. set csv [ open [file dirname [info script]]/config.csv {RDWR} ]

  48. array set csvData [ readCSV $csv 0 ]

  49. puts $csvData(5,2)

  50. puts $csvData(6,2)

  51. close $csv
复制代码

当我们在后处理中source脚本后,调用数组$csvData便得到配置表中的值了。
得到的值该如何去利用,可以参考上一期的贴子。

以下为后处理和脚本文件
(, 下载次数: 267)

做一件对行业有贡献的事情。


作者: 安周    时间: 2020-6-28 16:13
本帖最后由 安周 于 2020-6-28 16:14 编辑

沙发拿下,希望大师继续分享!有你越来越精彩。
作者: yongpengxin    时间: 2020-6-28 16:13
牛哥66666666666666
作者: topckey    时间: 2020-6-28 16:25
感谢分享,能出个后处理程序单就好了..{:smile:}

现在外挂的那些时间和刀长都不准确{:cry:}
作者: fswbvip*    时间: 2020-6-28 16:59
楼主太强大了!!!!!!!!!!!!!!!!!。
作者: cathy937156252    时间: 2020-6-28 17:02
楼主太强大了!!!!
作者: 在想什么呢    时间: 2020-6-28 19:36
大师666
作者: YANQH80    时间: 2020-6-29 08:54
感谢分享,有你越来越精彩。
作者: 雨滴17    时间: 2020-7-2 08:51
多谢分享
作者: yous707    时间: 2020-10-13 21:12
楼主太强大了,感谢。
作者: yous707    时间: 2020-10-27 07:53
大师,能不能分享一下怎么可以写入excel文件。
作者: ug1029    时间: 2021-1-25 16:43
谢谢分享!谢谢分享!
作者: 心雨666666    时间: 2021-1-25 19:09
谢谢分享!谢谢分享!
作者: hnymzb    时间: 2021-1-25 19:36
从CSV文件中读取数据
作者: 17625114620    时间: 2021-1-25 20:12
比专业更专业
作者: 心雨666666    时间: 2021-1-25 21:19
楼主太强大了,感谢
作者: 迷茫的中年大叔    时间: 2021-1-26 08:48
楼主太强大了,感谢。
作者: 淡描幸福    时间: 2022-11-23 18:59
大佬大佬,能请教下,四轴内的配置表怎么做吗?旋转平面,旋转轴,还有旋转角度最大与最小的度数?
作者: 子斌黑里    时间: 2023-1-3 10:38
大佬就是大佬




欢迎光临 UG爱好者 (https://www.ugsnx.com/) Powered by Discuz! X3.5