Tcl - ไฟล์ I / O
Tcl รองรับการจัดการไฟล์ด้วยความช่วยเหลือของคำสั่งในตัวเปิดอ่านวางรับและปิด
ไฟล์แสดงลำดับของไบต์ไม่สำคัญว่าจะเป็นไฟล์ข้อความหรือไฟล์ไบนารี
กำลังเปิดไฟล์
Tcl ใช้คำสั่ง open เพื่อเปิดไฟล์ใน Tcl ไวยากรณ์สำหรับการเปิดไฟล์มีดังนี้ -
open fileName accessMode
ที่นี่ filename เป็นสตริงลิเทอรัลซึ่งคุณจะใช้ตั้งชื่อไฟล์และ accessMode สามารถมีค่าใดค่าหนึ่งต่อไปนี้ -
ซีเนียร์ | โหมดและคำอธิบาย |
---|---|
1 | r เปิดไฟล์ข้อความที่มีอยู่เพื่อจุดประสงค์ในการอ่านและไฟล์ต้องมีอยู่ นี่คือโหมดเริ่มต้นที่ใช้เมื่อไม่มีการระบุ accessMode |
2 | w เปิดไฟล์ข้อความสำหรับการเขียนหากไม่มีอยู่ไฟล์ใหม่จะถูกสร้างขึ้นมิฉะนั้นไฟล์ที่มีอยู่จะถูกตัดทอน |
3 | a เปิดไฟล์ข้อความสำหรับการเขียนในโหมดต่อท้ายและต้องมีไฟล์อยู่ ที่นี่โปรแกรมของคุณจะเริ่มต่อท้ายเนื้อหาในเนื้อหาไฟล์ที่มีอยู่ |
4 | r+ เปิดไฟล์ข้อความสำหรับอ่านและเขียนทั้งสองอย่าง ไฟล์ต้องมีอยู่แล้ว |
5 | w+ เปิดไฟล์ข้อความสำหรับอ่านและเขียนทั้งสองอย่าง ขั้นแรกให้ตัดทอนไฟล์ให้มีความยาวเป็นศูนย์หากมีอยู่มิฉะนั้นให้สร้างไฟล์หากไม่มีอยู่ |
6 | a+ เปิดไฟล์ข้อความสำหรับอ่านและเขียนทั้งสองอย่าง จะสร้างไฟล์หากไม่มีอยู่ การอ่านจะเริ่มจากจุดเริ่มต้น แต่การเขียนสามารถต่อท้ายได้เท่านั้น |
การปิดไฟล์
ในการปิดไฟล์ให้ใช้คำสั่งปิด ไวยากรณ์สำหรับการปิดมีดังนี้ -
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