Tcl - Файловый ввод-вывод

Tcl поддерживает обработку файлов с помощью встроенных команд открытия, чтения, помещения, получения и закрытия.

Файл представляет собой последовательность байтов, независимо от того, текстовый это файл или двоичный файл.

Открытие файлов

Tcl использует команду open для открытия файлов в Tcl. Синтаксис для открытия файла следующий -

open fileName accessMode

Вот, filename является строковым литералом, который вы будете использовать для имени файла и accessMode может иметь одно из следующих значений -

Sr.No. Режим и описание
1

r

Открывает существующий текстовый файл для чтения, и файл должен существовать. Это режим по умолчанию, используемый, когда не указан accessMode.

2

w

Открывает текстовый файл для записи, если он не существует, создается новый файл, иначе существующий файл обрезается.

3

a

Открывает текстовый файл для записи в режиме добавления, и файл должен существовать. Здесь ваша программа начнет добавлять содержимое в существующее содержимое файла.

4

r+

Открывает текстовый файл для чтения и записи. Файл уже должен существовать.

5

w+

Открывает текстовый файл для чтения и записи. Сначала он обрезает файл до нулевой длины, если он существует, в противном случае создает файл, если он не существует.

6

a+

Открывает текстовый файл для чтения и записи. Он создает файл, если он не существует. Чтение начнется сначала, но запись может быть только добавлена.

Закрытие файла

Чтобы закрыть файл, используйте команду закрытия. Синтаксис для закрытия следующий:

close fileName

Любой файл, который был открыт программой, должен быть закрыт, когда программа закончит использовать этот файл. В большинстве случаев файлы не нужно закрывать явно; они закрываются автоматически, когда объекты File завершаются автоматически.

Запись файла

Команда 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