TCL檔I/O

TCL支持檔處理使用內置命令,如:open, read, puts, gets 和 close.

一個檔代表了一個位元組序列,不要緊,如果它是一個文本檔或二進位檔。

打開檔

TCL使用open命令在Tcl中打開檔。打開檔的語法如下。

open fileName accessMode

在這裏,檔案名是字串文字,用它來命名檔案名,accessMode可以是以下值之一:

模式 描述
r 打開一個現有的文本檔讀取並且檔必須存在。這是沒有指定accessMode時使用的默認模式。
w 打開用於寫入的文本檔中、,如果它不存在,則一個新檔創建,其他現有的檔將被截斷。
a 打開寫在追加模式,檔必須存在一個文本檔。在這裏,程式將開始追加到現有的檔內容的內容。
r+ 打開用於讀取和寫入兩種的文本檔。檔必須已經存在。
w+ 打開用於讀取和寫入兩種的文本檔。如果它存在首先截斷檔為零長度,否則創建該檔,如果它不存在。
a+ 打開用於讀取和寫入兩種的文本檔。它,如果它不存在,創建該檔。讀數將從頭開始,但寫只能追加。

關閉檔

要關閉一個檔,請使用close命令。close 的語法如下。

close fileName 

當程式完成使用該檔已被打開的一個程式中的任何檔都必須關閉。在大多數情況下,檔不需要被明確地關閉;它們會自動關閉,當檔對象會自動終止。

寫入檔

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

下麵是另一個例子讀取檔,檔一行一行直到結束。

#!/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

上一篇: TCL命名空間 下一篇: TCL錯誤處理