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