Mastodon

Guida al Tcl

Premessa

Perché Tcl?

Installazione

Installazione Tcl e Tk (tclsh, wish, info patchlevel)

Un primo approccio

Stampa a video (puts, -nonewline)

Assegna un valore ad una variabile (set)

Sostituzione e valutazione

Uso delle parentesi

Parentesi graffe {...}

Parentesi quadre [...]

Calcoli

Espressioni (expr)

Problemi con i numeri

Strutture di controllo

Struttura di controllo (if-then-else)

Struttura di controllo (switch)

Struttura di controllo iterativa (while)

Struttura di controllo iterativa (for)

Procedura

Come creare un nuovo comando (proc, return)

Approfondimento sul comando proc (return)

Area di visibilità delle variabili (global, upvar)

Tipi di dati

Lista

Lista, la struttura dati di base di Tcl (list, split, lindex, llength)

Come modificare una lista (concat, lappend, linsert, lreplace, lset)

Lista, ricerca, ordinamento e sezionamento (lsearch, lsort, lrange)

Stringa

Ricerca con caratteri speciali (string, match)

Lunghezza, posizione e sezione di una stringa (length, index, range)

Comparazione tra stringhe (compare, first, last, wordend, wordstart)

Modificare una stringa (tolower, toupper, trim, trimleft, trimright, format)

Espressioni regolari (regular expressions)

Array

Array associativo (array exists, get, names, set, size, unset)

Array associativo (iterazione e procedure)

Dizionario

Il dizionario come alternativa all’array (dict, for, set, size with)

File e Cartelle

Lavorare con i files (open, gets, read, puts, close, ecc.)

Lavorare con la cartella di lavoro (pwd, cd)

Come ricavare informazioni su files e directories (glob, file)

Interlavoro con altri programmi

Come avviare altri programmi da Tcl (open, exec)

Come gestire un canale di Input/Output (socket, fileevent, vwait)

Canale di I/O, come dimensionare il buffer e il suo marcatore di terminazione (fblocked, fconfigure)

Comunicazione tra processi (after, fileevent, open, vwait)

Ora e Data (clock, seconds, format, scan, add)

Database

Lavorare con un database (sqlite3, memory, eval, close)

Introspezione

Verificare l’esistenza di procedure, comandi, funzioni matematiche e variabili (info, commands, exists, functions, globals, locals, procs, vars)

Info dall’Interprete Tcl e sul processo in corso (info, tclversion, patchlevel, script, cmdcount, level, pid)

Come ottenere informazioni sulle procedure (info, body, args, default)

Come individuare e risolvere gli errori (catch, error, return, errorCode, errorInfo)

Come tracciare l’esecuzione di un codice o ispezionare lo stato di una variabile…


Sitografia

Vittorio Albertoni, Tcl/tk: un tesoro nascosto

tutorial.edu.lat, Impara Tcl/Tk

Antonio Bonifati, Appunti di Tcl/Tk

C. Flynt, N. Madden, A. Markus, D. N. Welton, Tcl Tutorial

Bibliografia

Vittorio Albertoni, Programmare con Tcl/Tk

Ashok P. Nadkarni, The Tcl Programming Language