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