Tcl-ファイルI / O
Tclは、組み込みコマンドopen、read、puts、gets、およびcloseの助けを借りてファイル処理をサポートします。
ファイルはバイトのシーケンスを表し、テキストファイルであるかバイナリファイルであるかは関係ありません。
ファイルを開く
Tclは、openコマンドを使用してTcl内のファイルを開きます。ファイルを開くための構文は次のとおりです-
open fileName accessMode
ここに、 filename は文字列リテラルであり、ファイルに名前を付けるために使用します。 accessMode 次のいずれかの値をとることができます-
シニア番号 | モードと説明 |
---|---|
1 | r 読み取り用に既存のテキストファイルを開きます。ファイルが存在している必要があります。これは、accessModeが指定されていない場合に使用されるデフォルトのモードです。 |
2 | w 書き込み用にテキストファイルを開きます。存在しない場合は新しいファイルが作成され、存在しない場合は既存のファイルが切り捨てられます。 |
3 | a 追加モードで書き込むためにテキストファイルを開きます。ファイルが存在している必要があります。ここで、プログラムは既存のファイルコンテンツにコンテンツの追加を開始します。 |
4 | r+ 両方を読み書きするためのテキストファイルを開きます。ファイルはすでに存在している必要があります。 |
5 | w+ 両方を読み書きするためのテキストファイルを開きます。最初にファイルが存在する場合は長さがゼロに切り捨てられ、存在しない場合はファイルが作成されます。 |
6 | a+ 両方を読み書きするためのテキストファイルを開きます。ファイルが存在しない場合は作成します。読み取りは最初から始まりますが、書き込みは追加することしかできません。 |
ファイルを閉じる
ファイルを閉じるには、closeコマンドを使用します。closeの構文は次のとおりです-
close fileName
プログラムによって開かれたファイルは、プログラムがそのファイルの使用を終了したときに閉じる必要があります。ほとんどの場合、ファイルを明示的に閉じる必要はありません。Fileオブジェクトが自動的に終了すると、それらは自動的に閉じられます。
ファイルの作成
Putsコマンドは、開いているファイルへの書き込みに使用されます。
puts $filename "text to write"
ファイルへの書き込みの簡単な例を以下に示します。
#!/usr/bin/tclsh
set fp [open "input.txt" w+]
puts $fp "test"
close $fp
上記のコードをコンパイルして実行すると、新しいファイルが作成されます input.txt それが開始されたディレクトリ(プログラムの作業ディレクトリ内)。
ファイルの読み取り
以下は、ファイルから読み取る簡単なコマンドです-
set file_data [read $fp]
読み取りと書き込みの完全な例を以下に示します-
#!/usr/bin/tclsh
set fp [open "input.txt" w+]
puts $fp "test"
close $fp
set fp [open "input.txt" r]
set file_data [read $fp]
puts $file_data
close $fp
上記のコードをコンパイルして実行すると、前のセクションで作成したファイルが読み取られ、次の結果が生成されます。
test
これは、ファイルの最後までファイルを1行ずつ読み取る別の例です。
#!/usr/bin/tclsh
set fp [open "input.txt" w+]
puts $fp "test\ntest"
close $fp
set fp [open "input.txt" r]
while { [gets $fp data] >= 0 } {
puts $data
}
close $fp
上記のコードをコンパイルして実行すると、前のセクションで作成したファイルが読み取られ、次の結果が生成されます。
test
test