Tcl/Tk
Curso On-Line de Programação

Cadeias de caracteres

Em Tcl existe apenas um tipo de dado: strings. Strings são cadeias de caracteres, que podem ser delimitadas por aspas duplas("), aspas simples(') ou chaves({}). O delimitador da string determina se haverá ou não substituição, como visto na aula de introdução deste curso.

Para atribuir uma string a uma variável, utilizamos o comando set:

set x "Esta é uma string"


Para ler o conteúdo da variável colocamos um caractere $ antes do nome da variável:

puts $x


Tcl oferece diversos comandos e funções para tratar strings:
 

Comando/Função Descrição
append Concatena várias strings.
binary format Retorna uma representação binária de uma string, de acordo com um formato especificado. 
binary scan Estrai valores de uma string binária, para uma variável, de acordo com o formato especificado.
format Retorna uma string formatada, de modo semelhante ao comando sprintf do ANSI C.
regexp Retorna 1 se a expressão regular corresponde à string.
regsub Substitue a primeira porção da string que corresponde à expressão regular.
scan Extrai valores de uma string, em uma variável, de modo semelhante ao comando sscanf do ANSI C.
string compare Compara duas strings.
string first Encontra a primeira ocorrencia de uma string em outra.
string index Retorna o caractere na posição especificada.
string is Verifica se os dados em uma string são de um determinado tipo.
string last Encontra a última ocorrência de uma string em outra.
string length Retorna o tamanho da string.
string match Verifica se uma string corresponde a outra dada.
string range Retorna um trecho de uma string.
string tolower Converte uma string em minúsculas.
string toupper Converte uma string em maiúsculas.
string trim Remove os espaços em branco à direita e à esquerda de uma string.
string trimleft Remove os espaços em branco à esquerda de uma string.
string trimright Remove os espaços em branco à direita de uma string.
string wordend Retorna o caractere logo após o último caractere na palavra especificada na string.
string wordstart Retorna o primeiro caractere na palavra especificada na string.
subst Realiza uma substituição em uma string.

Exemplos:

append

set x "1"
append x "234"
puts $x
Resulta em:
1234


format

set x [format {%-20s %3.2f %2d} Salário 2.1 3]
puts $x
Resulta em:
Salário              2.10  3


string first

set x "abc def ghi"
set y [string first "e" $x]
puts $y
Resulta em:
5


string index

set x "123 abc 456 def"
puts [string index $x 5]
Resulta em:
b


string length

set x "abcdefgh"
puts [string length $x]
Resulta em:
8


string range

set x "abcdefgh"
puts [string range $x 3 6]
Resulta em:
defg


string tolower

set x "LETRAS MAIÚSCULAS"
puts [string tolower $x]
Resulta em:
letras maiúsculas


string toupper

set x "letras minúsculas"
puts [string toupper $x]
Resulta em:
LETRAS MINÚSCULAS


string trim

set x "    abc    "
puts "[string trim $x] def"
Resulta em:
abc def


string trimleft

set x "    abc    "
puts "[string trimleft $x] def"
Resulta em:
abc     def


string trimright

set x "    abc    "
puts "[string trimright $x] def"
Resulta em:
    abc def


Para uma descrição detalhada de todas as funções string, consulte a documentação on-line, ou o Tcl/Tk Reference Guide, ou ainda o Tcl/Tk Electronic Reference.
 

Expressões regulares

Expressões regulares são um poderoso meio para realizar pesquisas em strings. A tabela a seguir, apresenta os operadores utilizados em Tcl para realizar buscas em strings, vetores e listas:
 

Operador Descrição
expreg|expreg Compara ambas as expressões.
expreg* Compara zero ou mais ocorrências de expreg.
expreg+ Compara uma ou mais ocorrências de expreg.
expreg? Compara zero ou uma ocorrência de expreg.
. Compara um único caractere.
^ Compara o início da string.
$ Compara o fim da string.
\c Compara o caractere c mesmo que ele seja especial.
[abc] Compara o conjunto de caracteres.
[^abc] Compara os caracteres que não estejam no conjunto.
[a-z] Compara a faixa de caracteres.
[^a-z] Compara os caracteres que não estejam na faixa.
( ) Agrupa expressões.

Exemplos

puts [regexp {[1-5]} "12345678"]
Retorna 1, pois um dos números de 1 a 5 está incluído na string.
 
puts [regexp {[1-5]} "6789"]
Retorna 0, pois nenhum dos números de 1 a 5 está incluído na string.
 
set x ""
regexp -nocase {[^def]} "abcdef" x
puts $x
Retorna abc, pois regexp atribuirá à string todos os caracteres que não correspondam à expressão fornecida.
 

Expressões regulares são muito usadas em bancos de dados SQL e programas CGI que procuram informações em páginas HTML.

Para uma descrição detalhada de todas as funções string, consulte a documentação on-line, ou o Tcl/Tk Reference Guide, ou ainda o Tcl/Tk Electronic Reference.

Para maiores informações envie e-mail para info@souzamonteiro.com.


http://www.souzamonteiro.com
info@souzamonteiro.com

Copyright(C) 2000 by Roberto Luiz Souza Monteiro