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