PDF de programación - Breve manual de Tcl

Imágen de pdf Breve manual de Tcl

Breve manual de Tclgráfica de visualizaciones

Publicado el 22 de Marzo del 2018
2.974 visualizaciones desde el 22 de Marzo del 2018
56,9 KB
7 paginas
Creado hace 19a (10/12/2004)
Breve manual de Tcl

Sergio Herrera Alonso

10 de diciembre de 2004

1.

Introduccion a Tcl

Tcl (Tool Command Language) es un lenguaje de programacion de comandos muy popular
para el desarrollo de pequeñas aplicaciones en entornos UNIX (aunque tambien existe una
version disponible para Windows). Permite programar de forma rapida y sencilla aplicaciones
no demasiado complejas. Sin embargo, la velocidad de ejecucion de estas no sera muy elevada
ya que nos encontramos ante un lenguaje interpretado y no ante un lenguaje compilado.

Una caracterstica muy importante de este lenguaje es la facilidad con la que se pueden
añadir nuevos comandos a los ya existentes en el Tcl estandar. Estos nuevos comandos pueden
implementarse utilizando el lenguaje de programacion C e integrarse de manera sencilla en
Tcl. As, se han escrito bastantes extensiones para la realizacion de ciertas tareas comunes
como, por ejemplo, OTcl (Tcl orientado a objetos) o Tk (que permite crear interfaces gracas
de usuario).

Se pueden ejecutar comandos Tcl de dos modos:

1. Modo interactivo: directamente, a traves del interprete de comandos tclsh, se pueden

introducir y ejecutar comandos Tcl de forma interactiva.

2. Modo no interactivo: los comandos se guardan en un chero. Se pueden ejecutar de dos

maneras:

Llamando al interprete de comandos de Tcl pasandole como parametro el nombre
del chero.

Ejecutando directamente el chero de comandos. Para que esto sea posible, la
primera lnea del chero debe incluir el path hacia el interprete de comandos
(por ejemplo, #!/usr/bin/tclsh). Ademas, el chero tiene que tener los permisos
adecuados (permiso de ejecucion).

Este documento no pretende ser una guia completa del lenguaje Tcl. Simplemente, se ofrece
como manual de ayuda para la realizacion de las practicas de la asignatura Sistemas de Con-
mutacion. Para obtener mas informacion sobre como utilizar un determinado comando Tcl,
se recomienda consultar la pagina man correspondiente (man n comando) o cualquier libro
que describa este lenguaje [1, 2].

2. Variables y valores

Tcl trata principalmente con cadenas de texto (strings). Cuando es necesario (por ejemplo,
a la hora de realizar operaciones aritmeticas), Tcl convierte automaticamente los strings en
numeros.

Para crear una variable y asignarle un valor se utiliza el comando set:

1

% s e t a 100

Cuando el smbolo $ precede al nombre de una variable, el interprete sustituye dicha

variable por su valor. Por ejemplo:

% p u t s $a
100

Para realizar operaciones aritmeticas se utiliza el comando expr:

% expr 2 $a
200

Una cadena contenida entre corchetes ([cadena]) se considera que es un comando: la cadena
se evalua como si fuese un comando Tcl y se sustituye por el resultado obtenido. Esto no
ocurre si la cadena esta entre comillas (\cadena"). Para ejecutar realmente dicha cadena se
requiere el comando eval:

% s e t b [ expr 2 $a ]
200
% s e t b " expr 2 $a "
expr 2100
% e v a l $b
200

3. Estructuras de control

Los comandos de control de ujo son similares a sus equivalentes en el lenguaje C. Los prin-
cipales operadores de comparacion son: <, >, <=, >=, ==, !=, &&, ||, !. Los ejemplos
siguientes pueden ser utiles para ilustrarnos en la utilizacion de estos comandos.

if

i 1

% s e t
% i f f $ i <0g f
p u t s " N e g a t i v o "
g e l s e i f f $ i ==0g f
p u t s " Cero "
g e l s e f
p u t s " P o s i t i v o "
g
P o s i t i v o

i 1g f $ i <=3g f i n c r

i g f

for

% f o r f s e t
p u t s $ i
g
1
2
3

El comando break naliza la ejecucion del bucle inmediatamente. El comando continue
fuerza a que se ejecute la iteracion siguiente (evidentemente, siempre y cuando se cum-
pla la condicion de continuacion del bucle).

2

while

i

i 1

% s e t
% w h i l e f $ i <=3g f
p u t s $ i
i n c r
g
1
2
3

4. Operaciones con cadenas de texto

string length
Devuelve el numero de caracteres que forman una cadena.

% s t r i n g l e n g t h "ABCD"
4

string index
Devuelve el caracter situado en una determinada posicion dentro de una cadena. Al
primer caracter le corresponde el ndice 0. Podemos referirnos al ultimo caracter de
una cadena mediante la palabra end.

% s t r i n g i n d e x "ABCD" 1
B
% s t r i n g i n d e x "ABCD" end
D

string range
Devuelve la subcadena formada por las caracteres que se encuentran entre dos posicio-
nes de una cadena.

% s t r i n g r a n g e "ABCDEF" 3 end
DEF

string rst, last
Busca la primera (ultima) ocurrencia de una subcadena en una cadena y devuelve el
ndice a partir del cual se encuentra dicha subcadena (si no se encuentra, devuelve 1).

% s t r i n g f i r s t "CD" "ABCDABCD"
2
% s t r i n g l a s t "CD" "ABCDABCD"
6

string map
Reemplaza en una cadena las subcadenas indicadas por otras nuevas.

% s t r i n g map fAB 12 C 3 D 4g "ABCD"
1234

string match
Devuelve 1 si la cadena coincide con el patron proporcionado (o 0 en caso contrario). Pa-
ra obtener completa informacion sobre la especicacion de patrones se puede consultar
la ayuda de la herramienta flex.

3

% s t r i n g match "B" "ABC"
1

regexp
Permite buscar patrones en una cadena y asignarlos a variables.

r e s u l t a d o e s 1 0 0 . "
% s e t cadena " El
% r e g e x p f[0 9]+g $cadena r e s u l t a d o
% p u t s $ r e s u l t a d o
100

5. Arrays

Los arrays en Tcl son asociativos: cualquier cadena puede ser ndice de un array.

% s e t miarray ( 0 ) 0
% s e t miarray ( e l e m e n t o ) 1
% p u t s $miarray ( 0 )
0
% p u t s $miarray ( e l e m e n t o )
1

Los comandos mas importantes para manejar arrays son: array exists, array get, array
names, array size...

6. Listas

Son agrupaciones de elementos de Tcl. Cualquier elemento Tcl puede formar parte de una

lista, incluido otras listas. La sintaxis para crear una lista es la siguiente:

% s e t meses f e n e r o f e b r e r o marzo g

llength
Devuelve el numero de elementos que forman la lista.

% l l e n g t h $meses
3

lindex
Devuelve el elemento que ocupa una posicion determinada en una lista. Al elemento
inicial de la lista le corresponde el ndice 0.

% l i n d e x $meses 1
f e b r e r o

linsert
Permite añadir elementos a una lista a partir de una posicion determinada.

% l i n s e r t $meses end a b r i l mayo
e n e r o f e b r e r o marzo a b r i l mayo
% p u t s $meses
e n e r o f e b r e r o marzo

4

Atencion: este comando no modica la lista meses, sino que devuelve una lista con los
nuevos elementos añadidos.

lappend
Añade elementos a una lista a partir del nal de la misma. Este comando s modica
realmente la lista.

% lappend meses a b r i l mayo
e n e r o f e b r e r o marzo a b r i l mayo
% p u t s $meses
e n e r o f e b r e r o marzo a b r i l mayo

lsearch
Busca elementos de la lista que veriquen un determinado patron. Devuelve el ndice
del primer elemento que cumple con el patron o 1 si no se encuentra ningun elemento.

% l s e a r c h $meses
1

f e b

lreplace
Devuelve la lista resultado de reemplazar en una lista los elementos seleccionados por
otros nuevos.

% l r e p l a c e $meses 0 1 ENERO FEBRERO
ENERO FEBRERO marzo a b r i l mayo

Si no se especican los nuevos elementos, simplemente se eliminan los elementos selec-
cionados.

% l r e p l a c e $meses 0 1
marzo a b r i l mayo

split
Crea una lista a partir de una cadena. El delimitador por defecto es el espacio en blanco.

t r e s "

% s p l i t "uno dos
uno dos
% s p l i t "uno , dos , t r e s " f , g
uno dos

t r e s

t r e s

foreach
Este comando asigna a una variable un elemento de una lista en cada paso.

% f o r e a c h i f1 2 3g f

p u t s $ i

g
1
2
3

5

7. Procedimientos

Un procedimiento se dene de la siguiente manera:

p r o c nombre proc f a r g 1 a r g 2 . . . g f

. . .
r e t u r n $var

g

Por defecto, todas las variables creadas dentro de un procedimiento son locales a dicho

procedimiento. Para acceder a variables globales:

global variable: permite acceder dentro de un procedimiento a una variable global.

upvar oldvar newvar: hace que la variable global oldvar sea accesible en el procedi-
miento actual a traves de una variable de nombre newvar.

8. Comandos de entrada/salida

open
Abre un chero y devuelve un identicador de canal que se puede utilizar en futuras
llamadas a otros comandos de E/S.

% s e t

f i c h e r o [ open " f i c h e r o . t x t " r ]

Se permiten los siguientes modos de acceso:

r: solo lectura (el chero debe existir).

r+: lectura y escritura (el chero debe existir).

w: solo escritura (si existe, lo sobreescribe).

w+: lectura y escritura (si existe, lo sobreescribe).

a: solo escritura (el chero debe existir, añade datos al nal del chero).

a+: lectura y escritura (el chero debe existir, añade datos al nal del chero).

Si el primer caracter del nombre del chero es el smbolo |, el open funciona como una
tubera: permite ejecutar programas externos y que su salida este disponible a traves
del identicador devuelto:

% s e t

l i s t a d o [ open " j

l s " r ]

close
  • Links de descarga
http://lwp-l.com/pdf9776

Comentarios de: Breve manual de Tcl (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad