4

csvを使用して引用符を追加する方法:

% package require csv
0.7.3

% set l [list "21" "Some test" "Some test"]
% ::csv::join $l {,} {"}
21,Some test,Some test

「21」、「いくつかのテスト」、「いくつかのテスト」のような出力が欲しい

4

3 に答える 3

2

パッケージは、だましてそうさせない限り、そのcsvような引用を提供しません。

単にそれを行うためのオプションを提供するべきだと主張する人もいるでしょうが、代わりにこれを試してみてください:

package require struct::list

set l {1 "Some Text" "Some Test"}
set r [join [struct::list map $l {format {"%s"}}] ","]
puts $r
于 2012-09-15T23:53:29.843 に答える
0

このソリューションは最善ではありませんが、機能します。注意が必要なコーナーケースがあるかもしれません。リスト内の項目を変更する必要はなく、CSVパッケージも必要ありません。

set theList [list "21" "Some test" "Some test"]
set quotedCSV "\"[join $theList {","}]\""
puts $quotedCSV

基本的に、quotedCSV = quote + ( theList, separated by quote+comma+quote ) + quote。私の提案は、本当に引用符が必要でない限り、CSVを使用することです。

于 2012-09-18T17:36:13.910 に答える
0

トリックは次のとおりです。

  • Tcl が二重引用符を取り除かないようにします。
  • のエスケープを無効csvにする (デフォルトは")
% set L [list {"21"} {"Some test"} {"Some test"}]
{"21"} {"Some test"} {"Some test"}
% csv::join $L , {}
"21","Some test","Some test"

これは、中間のどこかに文字がある値の 1 つの問題を解決しないことに注意してください。"これが発生する可能性がある場合は、ターゲットの CSV プロセッサが理解できる方法で、そのような文字を何らかの方法でエスケープする必要があります。

于 2012-09-16T22:38:57.237 に答える