QQ登录

只需一步,快速开始

快捷登录

登录 或者 注册 请先

UG爱好者

查看: 5169|回复: 18
打印 上一主题 下一主题

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

[复制链接]

版主

闪光的蜗牛

Rank: 10Rank: 10Rank: 10

18

主题

509

帖子

1万

积分

论坛元老

跳转到指定楼层
楼主
发表于 2020-6-28 16:10:21 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
上期回顾
让后处理修改变得简单点——[配置表]的应用-第一期
(出处: UG爱好者)

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

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

运行脚本
输出结果正确。

以下为脚本代码部分:
  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便得到配置表中的值了。
得到的值该如何去利用,可以参考上一期的贴子。

以下为后处理和脚本文件
后处理和脚本文件.rar (53.04 KB, 下载次数: 262)

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

评分

参与人数 3G币 +23 收起 理由
や木頭亾э + 3 楼主是大神!膜拜!
在想什么呢 + 10 不错,支持你!
安周 + 10 不错,支持你!

查看全部评分

有奖推广贴子: 

闪光的蜗牛
回复

使用道具 举报

版主

Rank: 10Rank: 10Rank: 10

11

主题

161

帖子

3005

积分

优秀版主论坛元老

沙发
发表于 2020-6-28 16:13:05 | 只看该作者
本帖最后由 安周 于 2020-6-28 16:14 编辑

沙发拿下,希望大师继续分享!有你越来越精彩。
回复 支持 反对

使用道具 举报

六级士官

Rank: 4

3

主题

48

帖子

1581

积分
板凳
发表于 2020-6-28 16:13:24 | 只看该作者
牛哥66666666666666
回复 支持 反对

使用道具 举报

上将

Rank: 10Rank: 10Rank: 10

64

主题

3945

帖子

3万

积分

论坛元老

地板
发表于 2020-6-28 16:25:24 | 只看该作者
感谢分享,能出个后处理程序单就好了..

现在外挂的那些时间和刀长都不准确
回复 支持 反对

使用道具 举报

上尉

Rank: 6Rank: 6

6

主题

381

帖子

5327

积分
5#
发表于 2020-6-28 16:59:34 | 只看该作者
楼主太强大了!!!!!!!!!!!!!!!!!。
回复 支持 反对

使用道具 举报

上校

Rank: 7Rank: 7Rank: 7

0

主题

1396

帖子

1万

积分
6#
发表于 2020-6-28 17:02:31 | 只看该作者
楼主太强大了!!!!
回复 支持 反对

使用道具 举报

上校

Rank: 7Rank: 7Rank: 7

1

主题

1463

帖子

1万

积分
8#
发表于 2020-6-29 08:54:23 | 只看该作者
感谢分享,有你越来越精彩。
回复 支持 反对

使用道具 举报

中尉

Rank: 5Rank: 5

5

主题

252

帖子

3603

积分
10#
发表于 2020-10-13 21:12:01 | 只看该作者
楼主太强大了,感谢。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

 
 
QQ:1359218528
工作时间:
9:00-17:00
 
微信公众号
手机APP
机械社区
微信小程序

手机版|UG爱好者论坛 ( 京ICP备10217105号-2 )    论坛管理员QQ:1359218528

本站信息均由会员发表,不代表本网站立场,如侵犯了您的权利请联系管理员,邮箱:1359218528@qq.com  

Powered by UG爱好者 X3.2  © 2001-2014 Comsenz Inc. GMT+8, 2024-11-28 18:35

返回顶部