28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
-
+
+
+
|
foreach opt {-sep -csvignore -csvkey} {
set i [lsearch -exact $::argv $opt]
if {$i >= 0} {
incr i
set opts($opt) [lindex $::argv $i]
}
}
set opts(-sep) [subst -nocommands -novariables $opts(-sep)]
set i [lsearch -exact $::argv "-csvheader"]
if {$i >= 0} {
set opts(-csvheader) 1
}
# Also allow options via info
foreach {opt val} $::Info {
set opts($opt) $val
}
# Allow backslash for easy access to \t
set opts(-sep) [subst -nocommands -novariables $opts(-sep)]
# If any column is given by name, assume the file starts with
# a header line of column names
foreach col [concat $opts(-csvignore) $opts(-csvkey)] {
if {![string is integer $col]} {
set opts(-csvheader) 1
}
}
|