Estructura de un programa TCL

Lenguaje de programación TCL Pedro J. Muñoz Merino http://www.it.uc3m.es/pedmume/ Indice ● Introducción ● Estructura de un programa de TCL ● Va

167 downloads 135 Views 183KB Size

Recommend Stories


Estructura de un programa
Paradigmas de Programación Año 2005 LENGUAJE ADA Estructura de un programa Todo programa Ada tiene 4 componentes: · la especificación del contexto;

Programas. Estructura de un programa simple
Programas Estructura de un programa simple Los programas más simples escritos en lenguajes imperativos suelen realizar tres tareas de forma secuencial: • Entrada de datos • Procesamiento de los datos • Salida de resultados La función main El punto d

Estructura de un robot industrial
Estructura de un robot industrial • • • Componentes Características principales Configuraciones morfológicas del manipulador Componentes Como se ade

Story Transcript

Lenguaje de programación TCL Pedro J. Muñoz Merino 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 ú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 \



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 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 



regexp ?switches? expression string ?matchVar? ?subMatchVar subMatchVar ...? 



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

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 *



|



() 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

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

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 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

Pedro J. Muñoz Merino

 “2”

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



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 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



Envío de email: ns_sendmail



Variable global compartida en múltiples hilos: ns_share



Arrays: ns_set



Lista de los links : 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

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.