PDF de programación - Lenguaje de programación TCL

Imágen de pdf Lenguaje de programación TCL

Lenguaje de programación TCLgráfica de visualizaciones

Publicado el 17 de Mayo del 2021
107 visualizaciones desde el 17 de Mayo del 2021
182,5 KB
17 paginas
Creado hace 10a (03/04/2011)
Lenguaje de
Lenguaje de

programación TCL
programación TCL

Pedro J. Muñoz Merino
Pedro J. Muñoz Merino

http://www.it.uc3m.es/pedmume/
http://www.it.uc3m.es/pedmume/

Indice

● Introducción
● Estructura de un programa de TCL
● Variables
● Manipulación de strings
● Listas y Arrays
● Aritmética
● Estructuras de control
● Entrada/Salida
● Introducción a la programación Web con el AOLServer

Pedro J. Muñoz Merino

Diseño de Aplicaciones Telemáticas

2

Estructura de un programa TCL

● Un conjunto de invocaciones a comandos. Cada línea es

una invocación. Para definir nuevos comandos que
puedan ser invocados se realiza con proc
― El comando puede retornar algún valor con la palabra reservado

return

― Si no hay un return, entonces se devuelve lo que retorne el
― Si no hay un return, entonces se devuelve lo que retorne el

último comando ejecutado

― Los parámetros de un comando pueden ser lo que retornan otros

comandos. Este tipo de invocaciones deben ir entre [ ]

proc nombre_comando {param1 param2 … paramn}
{

comandos_de_TCL
return var

}

Pedro J. Muñoz Merino

Diseño de Aplicaciones Telemáticas

3

Variables

● Definición de variables y establecimiento de valor

― set nombre_var valor

● Recuperación de valores de variables

― set nombre_var

― $nombre_var

Pedro J. Muñoz Merino

Diseño de Aplicaciones Telemáticas

4

Caracteres que se escapan

● Hay ciertos caracteres que no se interpretan literalmente

dentro de un string, como por ejemplo
― $ que significa el valor de una variable

― [ ] que significa la ejecución de un determinado comando

● Para interpretarlos literalmente hay que poner delante el

carácter \
carácter \

● Un string puede ir

― Sin comillas. En cuanto hay un espacio en blanco se interpreta

como un parámetro de un comando

― Con comillas dobles. El espacio en blanco se interpreta tal cual

Pedro J. Muñoz Merino

Diseño de Aplicaciones Telemáticas

5

Ámbito de las variables

● Local a un procedimiento. Este es el ámbito por defecto
● Globales a un Thread. Se declaran con la palabra

reservada global. Y en cada procedimiento que se utilice
hay que poner dicha palabra reservada

● Globales a todos los Threads. Se declaran con la palabra

reservada ns_share (Esto es algo del servidor
reservada ns_share (Esto es algo del servidor
AOLServer)

Pedro J. Muñoz Merino

Diseño de Aplicaciones Telemáticas

6

Operaciones con Strings (I)

● Operadores que no empiezan por string

― append variable_name value1 value2 value3 ... valueN

 A lo que tenía la variable se le añaden los strings de los valores pasados

― regexp ?switches? expression string ?matchVar? ?subMatchVar

subMatchVar ...?
 Se testea si la expresión hace match con el string pasado y luego se
 Se testea si la expresión hace match con el string pasado y luego se

devuelven diferentes strings según el match realizado

― regsub ?switches? expression string substitution_spec

result_variable_name
 Se testea si la expresión hace match con el string pasado y en tal caso se

procede a realizar la sustitución oportuna

Pedro J. Muñoz Merino

Diseño de Aplicaciones Telemáticas

7

Operaciones con Strings (II)

● Operadores empiezan por string

― string compare string1 string2

― string first string1 string2

― string last string1 string2

― string match pattern string

― string range string i j

― string tolower string

― string toupper string

― string trim string ?chars?

― string trimleft string ?chars?

― string trimright string ?chars?

― string wordend string index

Pedro J. Muñoz Merino

Diseño de Aplicaciones Telemáticas

8

Operaciones con Strings (III)

● Forma de establecer los diferentes patrones para hacer

matching
― . Un sólo caracter que puede ser cualquiera

― * Cero o más caracteres que pueden ser cualquiera

― + Uno o más caracteres que pueden ser cualquiera

― ? Igual que *
? Igual que *

― | Actua como un OR lógico para coger un patrón u otro

― () Agrupa un subpatrón

― [] Delimita un conjunto específico de caracteres. Si va el ^

delante entonces es el conjunto inverso

― ^ Patrón sólo al principio

― $ Patrón sólo al final

Pedro J. Muñoz Merino

Diseño de Aplicaciones Telemáticas

9

Listas

● Listas: Contienen un número indefinido de elementos, que pueden

ser números, strings u otras listas.

― list par1 par2 … parn : Crea una nueva lista

― lappend nombre_lista par1 par2 ... parn: Añade elementos al final de una lista

― linsert nombre_lista index par1 par2 ... parn: Añade elementos a una lista

existente justo en la posición antes del índice especificado

― lreplace nombre_lista n1 n2 par1 par2 ... parn: Reemplaza los elementos de la
― lreplace nombre_lista n1 n2 par1 par2 ... parn: Reemplaza los elementos de la

lista en las posiciones de n1 a n2 por los parámetros especificados

― lindex nombre_lista n : Obtiene el elemento n de la lista

― lrange nombre_lista n1 n2: Obtiene elementos desde n1 a n2

― llength nombre_lista : Obtiene la longitud de la lista

― lsearch mode nombre_lista value : Busca un elemento según su valor y modo

― concat lista1 lista2... Listn : Concatena varias listas

― join nombre_lista joinString : Produce un string de los elementos de la lista

― split string splitChars : Produce una lista de un string

Pedro J. Muñoz Merino

Diseño de Aplicaciones Telemáticas

10

Arrays

● Arrays: Son tablas hash que asocian diferentes claves

con sus valores
― Nombre_array(clave)=valor : Para asignar diferentes valores a un

array dependiendo de su clave. Sirve tanto para definir una
nueva clave de array o para sobreescribir su valor

Pedro J. Muñoz Merino

Diseño de Aplicaciones Telemáticas

11

Aritmética

● Se evalua con el comando expr
● expr evalua una expresión aritmética y devuelve su valor

set i 1
i= expr i + 1  “2”
i= expr i + 1  “2”

Pedro J. Muñoz Merino

Diseño de Aplicaciones Telemáticas

12

Estructuras de Control

● if
● switch

● while

● foreach

● for

Pedro J. Muñoz Merino

Diseño de Aplicaciones Telemáticas

13

Entrada/Salida

● TCL tiene un interfaz para manipular ficheros, que

permite:
― Características del fichero, como extensión, fecha de creación, si

es ejecutable o no, etc.

― Abrir el fichero

― Leer del fichero
― Leer del fichero

― Escribir en el fichero

― Otras llamadas de manipulación de ficheros, como para

posicionar el puntero por donde se va leyendo o escribiendo

Pedro J. Muñoz Merino

Diseño de Aplicaciones Telemáticas

14

Introducción a la programación Web

de AOLServer

● AOLServer dispone de una serie de librerías para la

programación Web
― Analogía con servlets y JSPs en J2EE, sería aquí ficheros TCL y

ADP

● Suelen empezar por ns_ aquellas utilidades de

AOLServer relacionadas con la programación Web
AOLServer relacionadas con la programación Web
basada en TCL

● Las utilidades y su descripción se encuentran en:

― http://aolserver.com/docs/

Pedro J. Muñoz Merino

Diseño de Aplicaciones Telemáticas

15

Introducción a la programación Web

de AOLServer

● Algunos comandos útiles iniciales

― Recibir información de peticiones: ns_conn

― Escribir datos en la respuesta: ns_write

― Devolver petición: ns_return, ns_returnredirect

― Bases de datos: ns_db

― Realización de petición HTTP: ns_httpget
― Realización de petición HTTP: ns_httpget

― Envío de email: ns_sendmail

― Variable global compartida en múltiples hilos: ns_share

― Arrays: ns_set

― Lista de los links <A> : ns_hrefs

― Logs: ns_log

― Información sobre el servidor: ns_server

― Devuelve el tiempo del servidor: ns_time

― Codificación de caracteres: ns_urlencode
Pedro J. Muñoz Merino

Diseño de Aplicaciones Telemáticas

16

Trabajo propio del alumno asociado a

la sesión

● TCL for Web nerds, http://philip.greenspun.com/tcl/

Pedro J. Muñoz Merino

Diseño de Aplicaciones Telemáticas

17
  • Links de descarga
http://lwp-l.com/pdf19203

Comentarios de: Lenguaje de programación 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