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