Tcl/Tk: CSVファイルの中身を読みたい

imoto
imoto
Altair Employee
edited November 2020 in 質問と回答 (Q&A)

Tcl言語では、openコマンドでファイルハンドルを取得して、getsコマンドでハンドルを指定すると、1行ずつ読むことができます。

 

openコマンドの最後を「r」にすると読み込みモード、「w」にすると書き込みモードで開きます。
openコマンドで開いていると、他からの書き込みなどができないロック状態になりますので、最後に忘れずにcloseコマンドで閉じて下さい。


-簡単なサンプルを用意しました。tk_messageBoxを使ったサンプルなので、←のような短いCSVファイルで試してみて下さい。

set ft {{'CSV Files' .csv} {'All Files' *}};
set fn [tk_getOpenFile -filetypes $ft];
set fh [open $fn r];
while {![eof $fh]} {
 gets $fh line;
 set line [split $line ,];
 tk_messageBox -message 'Gets = ${line}\nLength = [llength $line]';
}
close $fh;

 

 

-表示イメージ-

<?xml version="1.0" encoding="UTF-8"?>表示イメージ.jpg

Unable to find an attachment - read this blog