![]() |
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 $xResulta em:
1234
format
set x [format {%-20s %3.2f %2d} Salário 2.1 3]
puts $xResulta em:
Salário 2.10 3
string first
set x "abc def ghi"
set y [string first "e" $x]
puts $yResulta 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 $xRetorna 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 |
Copyright(C) 2000 by Roberto Luiz Souza Monteiro