🚀 Biblioteca: Terminal

Interaja com o terminal: leia entrada, exiba saída e trabalhe com arquivos!

🚀

Funções do Módulo Terminal

Entrada e Saída Padrão

-- Ler uma linha da entrada padrão
local nome = terminal.leia()

-- Escrever na saída padrão
terminal.escreva("Olá, mundo!\n")

-- Forçar gravação imediata (flush)
terminal.despeje()

Abrir e Gerenciar Arquivos

-- Abrir arquivo para leitura
local arquivo = terminal.abra("dados.txt", "r")

-- Abrir arquivo para escrita
local arquivo = terminal.abra("saida.txt", "w")

-- Abrir arquivo para adicionar ao final
local arquivo = terminal.abra("log.txt", "a")

-- Fechar arquivo
terminal.feche(arquivo)

Definir Entrada/Saída Padrão

-- Redirecionar entrada padrão
local arquivo = terminal.abra("entrada.txt", "r")
terminal.defina_entrada(arquivo)

-- Redirecionar saída padrão
local arquivo = terminal.abra("saida.txt", "w")
terminal.defina_saída(arquivo)

Iterar Sobre Linhas

-- Iterar sobre linhas de um arquivo
para linha em terminal.itere_linhas("dados.txt") faça
    exiba(linha)
fim

-- Iterar com formato específico
para numero em terminal.itere_linhas("numeros.txt", "*n") faça
    exiba(numero * 2)
fim

Processos e Arquivos Temporários

-- Abrir processo (executar comando)
local processo = terminal.abra_processo("ls -la", "r")
local saida = processo:leia("*a")
processo:feche()

-- Criar arquivo temporário
local temp = terminal.crie_arquivo_temporário()
temp:escreva("dados temporários")
temp:feche()

-- Verificar tipo de arquivo
local tipo = terminal.obtenha_tipo(arquivo)
exiba(tipo)  -- "file" ou "closed file"

Métodos de Arquivo

Leitura

local arquivo = terminal.abra("dados.txt", "r")

-- Ler tudo
local tudo = arquivo:leia("*a")

-- Ler uma linha
local linha = arquivo:leia("*l")

-- Ler um número
local numero = arquivo:leia("*n")

-- Ler N bytes
local bytes = arquivo:leia(100)

arquivo:feche()

Escrita

local arquivo = terminal.abra("saida.txt", "w")

-- Escrever texto
arquivo:escreva("Linha 1\n")
arquivo:escreva("Linha 2\n")

-- Forçar gravação
arquivo:despeje()

arquivo:feche()

Navegação e Configuração

local arquivo = terminal.abra("dados.bin", "r")

-- Buscar posição no arquivo
arquivo:busque("set", 100)  -- Ir para byte 100
arquivo:busque("cur", 10)   -- Avançar 10 bytes
arquivo:busque("end", -50)  -- 50 bytes antes do fim

-- Definir buffer
arquivo:defina_vbuf("full", 4096)  -- Buffer completo
arquivo:defina_vbuf("line")         -- Buffer por linha
arquivo:defina_vbuf("no")           -- Sem buffer

-- Iterar sobre linhas do arquivo
para linha em arquivo:itere_linhas() faça
    exiba(linha)
fim

arquivo:feche()

Exemplo: Sistema de Log

função registre_log(mensagem)
    local arquivo = terminal.abra("sistema.log", "a")
    se arquivo então
        local timestamp = sistema_operacional.obtenha_data("%Y-%m-%d %H:%M:%S")
        arquivo:escreva(timestamp .. " - " .. mensagem .. "\n")
        arquivo:feche()
    fim
fim

registre_log("Aplicação iniciada")
registre_log("Usuário fez login")

Exemplo: Processamento de Arquivo Grande

função processe_arquivo_grande(nome_arquivo)
    local entrada = terminal.abra(nome_arquivo, "r")
    local saida = terminal.abra("processado.txt", "w")

    se não entrada então
        exiba("Erro ao abrir arquivo!")
        retorne
    fim

    local contador = 0
    para linha em entrada:itere_linhas() faça
        contador = contador + 1
        saida:escreva(contador .. ": " .. linha .. "\n")
    fim

    entrada:feche()
    saida:feche()
    exiba("Processadas " .. contador .. " linhas")
fim
Sempre feche arquivos com :feche()! Arquivos não fechados podem causar perda de dados.
A biblioteca Terminal oferece controle completo sobre entrada/saída e manipulação de arquivos!
```