Category Archives: Tcl-Tk

Tcl/Tk: sondagem do sistema com variáveis

Às vezes, ajuda muito poder examinar determinadas condições do sistema enquanto um programa/script é executado, mais ou menos como quem está voando e verifica as condições meteorológicas. Não só em procedimentos de depuração, embora eu ache que estes sejam os casos mais comuns. … Continue reading

Posted in Tcl-Tk | Tagged , , , , , , , | 1 Comment

Tcl/Tk: Introspecção com comando info

introspecção: [Do ingl. introspection.] S. f. 1. Observação da vida interior pelo próprio sujeito; exame que alguém faz dos próprios pensamentos e sentimentos. Dicionário Aurélio – Século XXI Às vezes, ajuda muito poder examinar TUDO que está acontecendo em um … Continue reading

Posted in Tcl-Tk | Tagged , , | 1 Comment

Tcl/Tk: Como copiar e colar (clipboard, área de transferência)

Podemos obter o conteúdo (texto) da área de transferência, mais conhecida por aí como “clipboard”, a mesma que é usada nas operações de copiar-e-colar do ambiente gráfico. Antes, é preciso carregar o pacote Tk. Você pode rodar estes testes com o executável “wish”, … Continue reading

Posted in Tcl-Tk | Tagged , , , , , | Comments Off on Tcl/Tk: Como copiar e colar (clipboard, área de transferência)

Tcl/Tk: Reproduzir sons

A primeira coisa a se fazer é carregar o pacote Snack: % package require sound 2.2 Se o número da versão do pacote for retornado, significa que ele está presente e foi carregado. Se não, é preciso verificar a instalação do … Continue reading

Posted in Tcl-Tk | Tagged , , , , | Comments Off on Tcl/Tk: Reproduzir sons

Tcl/Tk: Expressões aritméticas sem "expr"

O comando [expr] é um dos que mais desagradam quem está começando a programar em Tcl, por causa da sintaxe: % puts “2 + 2 = [ expr {2+2} ]” 2 + 2 = 4 O comando [unknown], super versátil, … Continue reading

Posted in Tcl-Tk | Tagged , , , , , | Comments Off on Tcl/Tk: Expressões aritméticas sem "expr"

Tcl/Tk: Criar vários nomes para um comando (alias)

Além de renomear comandos em Tcl/Tk, também é possível criar “apelidos” para os comandos com o [interp alias]. Por exemplo, o comando [file exists] verifica se um determinado arquivo existe: % if { [file exists “/caminho/do/arquivo.txt”] == 1 } { … Continue reading

Posted in Tcl-Tk | Tagged , , , , , , | Comments Off on Tcl/Tk: Criar vários nomes para um comando (alias)

Tcl/Tk: Renomear e remover comandos

Tcl/Tk tem propriedades camaleônicas. Praticamente tudo pode ser modificado, o que pode resultar na criação de uma linguagem quase inteiramente nova. Por exemplo, se você não gostar do comando nativo [puts] porque está muito acostumado com ‘echo’, pode mudar o … Continue reading

Posted in Tcl-Tk | Tagged , , , , | 2 Comments

Tcl/Tk: Usar o valor do número Pi

Não existe comando nativo em Tcl/Tk que retorne o valor de Pi. Mas o valor de Pi está disponível em muitos lugares, logo é fácil registrar seu valor numa variável ou num procedimento e usá-lo sempre que quiser. Numa variável: … Continue reading

Posted in Tcl-Tk | Tagged , , , , , , , | Comments Off on Tcl/Tk: Usar o valor do número Pi

Tcl/Tk: Ler o conteúdo de um arquivo (texto)

Para ler/extrair todo o conteúdo de um arquivo de texto, basta: criar um ponteiro para abrir o arquivo; ler o conteúdo *do ponteiro* com o parâmetro “r” (read); fechar o arquivo por meio do ponteiro; imprimir o conteúdo na tela … Continue reading

Posted in Tcl-Tk | Tagged , , , , , , , | Comments Off on Tcl/Tk: Ler o conteúdo de um arquivo (texto)

Tcl/Tk: Configurar o encoding de scripts

Para determinar qual encoding seu script deve rodar, use na primeira linha: encoding system [tabela] Exemplo: encoding system utf-8 Para listar as tabelas disponíveis: encoding names Exemplo de listagem: foreach i [encoding names] { puts “A tabela $i está disponível … Continue reading

Posted in Tcl-Tk | Tagged , , , , | Comments Off on Tcl/Tk: Configurar o encoding de scripts

Tcl/Tk: Obter chaves e valores de um array set

Com o comando: array set minha_var { chave {valor} chave2 {valor2} } Criamos uma array com diversas chaves e valores. Exemplo: array set produtos { } set produtos(nome) { Banana Caturra } puts $produtos(nome) # Retorna: Banana Caturra Para listar … Continue reading

Posted in Tcl-Tk | Tagged , , , , , , | 1 Comment

Tcl/Tk: Substituir strings

Para manipular Strings em Tcl, utilizamos o comando string. Se precisar substituir ponto por vírgula: set valor { 10.00 } puts [string map -nocase { . , } $valor] # Retorna: 10,00 Podemos substituir várias cadeias de caracteres: set texto … Continue reading

Posted in Tcl-Tk | Tagged , , , | Comments Off on Tcl/Tk: Substituir strings

Tcl/Tk: Carregando scripts em lote (bibliotecas)

E possível destinar um diretório para nossos códigos auxiliares ou plugins, e na inicialização do sistema importá-los, utilizando o comando source. Por exemplo, considerando que há vários arquivos .tcl no diretório plugin/ foreach p “[glob plugin/*.tcl]” { source $p }

Posted in Tcl-Tk | Tagged , , , , , , | Comments Off on Tcl/Tk: Carregando scripts em lote (bibliotecas)

Tcl/Tk: Capturando e tratando erros

Palavras-chave: Tcl/Tk, capturar, erros Quando um procedimento é executando em Tcl, ele retorna 1 (sucesso) ou 0 (falha). É este resultado que faz o interpretador mostrar ou não um erro. Para não mostrar o erro ao usuário, mas detectá-lo e … Continue reading

Posted in Tcl-Tk | Tagged , , , | 1 Comment

Tcl/Tk: Reduzindo linhas

Palavras-chave: Tcl/Tk, pack, grid, place A sintaxe padrão para a criação de widgets é: widget toplevel.my_id opções_do_widget pack toplevel.my_id opções_do_pack Mas também é possível reunir tudo em uma só linha: pack [widget toplevel.my_id opções_do_widget] opções_do_pack Por exemplo: label .my_label -text “Oi Mundo!” -bg … Continue reading

Posted in Tcl-Tk | Comments Off on Tcl/Tk: Reduzindo linhas