Tcl - Tệp I / O
Tcl hỗ trợ xử lý tệp với sự trợ giúp của các lệnh tích hợp sẵn mở, đọc, đặt, nhận và đóng.
Tệp đại diện cho một chuỗi các byte, không quan trọng đó là tệp văn bản hay tệp nhị phân.
Mở tệp
Tcl sử dụng lệnh mở để mở tệp trong Tcl. Cú pháp để mở một tệp như sau:
open fileName accessMode
Đây, filename là chuỗi ký tự, bạn sẽ sử dụng để đặt tên tệp của mình và accessMode có thể có một trong các giá trị sau:
Sr.No. | Chế độ & Mô tả |
---|---|
1 | r Mở tệp văn bản hiện có cho mục đích đọc và tệp phải tồn tại. Đây là chế độ mặc định được sử dụng khi không có accessMode nào được chỉ định. |
2 | w Mở một tệp văn bản để ghi, nếu nó không tồn tại, thì một tệp mới sẽ được tạo, nếu không tệp hiện có sẽ bị cắt bớt. |
3 | a Mở tệp văn bản để viết ở chế độ bổ sung và tệp phải tồn tại. Tại đây, chương trình của bạn sẽ bắt đầu thêm nội dung vào nội dung tệp hiện có. |
4 | r+ Mở tệp văn bản để đọc và ghi cả hai. Tệp phải tồn tại. |
5 | w+ Mở tệp văn bản để đọc và ghi cả hai. Trước tiên, nó cắt ngắn tệp thành độ dài bằng 0 nếu nó tồn tại, nếu không hãy tạo tệp nếu nó không tồn tại. |
6 | a+ Mở tệp văn bản để đọc và ghi cả hai. Nó tạo ra tệp nếu nó không tồn tại. Việc đọc sẽ bắt đầu lại từ đầu, nhưng phần viết chỉ có thể được thêm vào. |
Đóng tệp
Để đóng tệp, hãy sử dụng lệnh đóng. Cú pháp đóng như sau:
close fileName
Bất kỳ tệp nào đã được mở bởi một chương trình phải được đóng khi chương trình kết thúc sử dụng tệp đó. Trong hầu hết các trường hợp, các tệp không cần phải được đóng một cách rõ ràng; chúng được đóng tự động khi các đối tượng Tệp tự động kết thúc.
Viết tệp
Lệnh Puts được sử dụng để ghi vào một tệp đang mở.
puts $filename "text to write"
Dưới đây là một ví dụ đơn giản để ghi vào tệp.
#!/usr/bin/tclsh
set fp [open "input.txt" w+]
puts $fp "test"
close $fp
Khi đoạn mã trên được biên dịch và thực thi, nó sẽ tạo ra một tệp mới input.txt trong thư mục mà nó đã được khởi động theo (trong thư mục làm việc của chương trình).
Đọc tệp
Sau đây là lệnh đơn giản để đọc từ một tệp:
set file_data [read $fp]
Dưới đây là một ví dụ đầy đủ về đọc và ghi:
#!/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
Khi đoạn mã trên được biên dịch và thực thi, nó sẽ đọc tệp được tạo trong phần trước và tạo ra kết quả sau:
test
Đây là một ví dụ khác để đọc tệp cho đến khi kết thúc từng dòng của tệp -
#!/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
Khi đoạn mã trên được biên dịch và thực thi, nó sẽ đọc tệp được tạo trong phần trước và tạo ra kết quả sau:
test
test