Tcl - Arquivo I / O

Tcl suporta o manuseio de arquivos com a ajuda dos comandos embutidos open, read, puts, gets e close.

Um arquivo representa uma seqüência de bytes, não importa se é um arquivo de texto ou binário.

Abrindo arquivos

Tcl usa o comando open para abrir arquivos em Tcl. A sintaxe para abrir um arquivo é a seguinte -

open fileName accessMode

Aqui, filename é uma string literal, que você usará para nomear seu arquivo e accessMode pode ter um dos seguintes valores -

Sr. Não. Modo e descrição
1

r

Abre um arquivo de texto existente para fins de leitura e o arquivo deve existir. Este é o modo padrão usado quando nenhum accessMode é especificado.

2

w

Abre um arquivo de texto para gravação; se ele não existir, um novo arquivo será criado, caso contrário, o arquivo existente será truncado.

3

a

Abre um arquivo de texto para gravação em modo de acréscimo e o arquivo deve existir. Aqui, seu programa começará a anexar conteúdo ao conteúdo do arquivo existente.

4

r+

Abre um arquivo de texto para leitura e escrita. O arquivo já deve existir.

5

w+

Abre um arquivo de texto para leitura e escrita. Ele primeiro trunca o arquivo para comprimento zero se ele existir, caso contrário, crie o arquivo se ele não existir.

6

a+

Abre um arquivo de texto para leitura e escrita. Ele cria o arquivo se ele não existir. A leitura começará do início, mas a escrita só pode ser anexada.

Fechando um Arquivo

Para fechar um arquivo, use o comando close. A sintaxe para fechar é a seguinte -

close fileName

Qualquer arquivo que tenha sido aberto por um programa deve ser fechado quando o programa terminar de usar esse arquivo. Na maioria dos casos, os arquivos não precisam ser fechados explicitamente; eles são fechados automaticamente quando os objetos Arquivo são encerrados automaticamente.

Gravando um Arquivo

O comando Puts é usado para gravar em um arquivo aberto.

puts $filename "text to write"

Um exemplo simples para gravar em um arquivo é mostrado abaixo.

#!/usr/bin/tclsh

set fp [open "input.txt" w+]
puts $fp "test"
close $fp

Quando o código acima é compilado e executado, ele cria um novo arquivo input.txt no diretório sob o qual foi iniciado (no diretório de trabalho do programa).

Lendo um arquivo

A seguir está o comando simples para ler um arquivo -

set file_data [read $fp]

Um exemplo completo de leitura e gravação é mostrado abaixo -

#!/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

Quando o código acima é compilado e executado, ele lê o arquivo criado na seção anterior e produz o seguinte resultado -

test

Aqui está outro exemplo para ler o arquivo até o final do arquivo linha por linha -

#!/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

Quando o código acima é compilado e executado, ele lê o arquivo criado na seção anterior e produz o seguinte resultado -

test
test