Jaws e la Matematica.
Per chi risolve le espressioni matematiche tramite passaggi successivi, nasce l'esigenza di copiarsi il contenuto di una riga con le espressioni in quella sottostante, per poterne eseguire man mano i calcoli. Grazie ad un semplice script per Jaws, ciò è possibile farlo in un solo gesto, senza curarsi inoltre di quale sia il punto della riga in cui si prema il comando per duplicarne il contenuto.
Questo script nasce da un'idea di Fabrizio Alberti, che ringrazio anche per essersi occupato del necessario collaudo e dei successivi sviluppi. Questo script, per lui, ha rappresentato una sorta di punto di partenza, proseguendo poi in prima persona a realizzare altri script e procedure di vario tipo per la matematica con Jaws. Nell'attesa di proporre più avanti i suoi lavori, quando anche nella guida tratteremo le funzioni da lui utilizzate, tutti coloro che hanno la necessità di servirsi di Jaws negli studi scolastici della matematica, possono già contattarlo scrivendo all'indirizzo fabrizio.alberti@unoscriptalgiorno.it.
Le fasi dello Script.
Pur essendo molto breve, lo script si compone di tre parti:
- Una prima struttura verifica se nella riga su cui è posto il cursore vi sia del contenuto. I caso contrario, viene emesso un suono, si pronuncia un avviso, ed infine il flusso viene interrotto.
- Una seconda struttura di controllo si accerta che il cursore non sia a fine riga, spostandolo indietro nel caso in cui non ne sia all'inizio. Così facendo, un successivo comando di spostamento a fine riga non potrà emettere un inutile suono di avvertimento.
- Una volta effettuati i controlli preliminari, si eseguono in serie tutte le azioni necessarie a copiare il contenuto, creare una nuova riga e riportarvi il testo copiato. Al termine, il cursore tornerà comunque ad inizio riga, dove l'utente potrà quindi cominciare l'elaborazione dei contenuti copiati.
Le parole chiave del Codice.
La quasi totalità delle funzioni e dei comandi usati nello script sono stati illustrati nei primi sei capitoli della guida Gli Script di Jaws. Ecco come programmarli da soli.
Le novità assolute, che non sono state trattate neppure nel resto della citata pubblicazione, sono quattro:
-
GetCharacterValue
, (OttieniValoreCarattere), la quale restituisce il valore numerico del codice Ascii corrispondente al primo carattere del testo posto tra le sue parentesi. -
GetPriorCharacter
, (OttiemiCaratterePrecedente), che restituisce il carattere che precede quello sul cursore. Ha un parametro opzionale, ma che di solito si può fare a meno di indicare. -
PriorCharacter
, (CaratterePrecedente), che sposta il cursore attivo, appunto, al carattere precedente. Non ha parametri. -
JAWSHome
, (HomeDiJaws), il quale, quando è attivo il cursore PC, segue gli effetti della pressione del tasto Home sulla tastiera, portandosi all'inizio dell'elemento corrente. Con gli altri cursori di Jaws, invece, si porta al primo carattere di testo o grafico presente nella linea. Anch'essa non ha parametri.
Le altre parole chiave presenti nello script, come detto, sono state illustrate sinora nella citata Guida, ed il loro elenco sarà posto di seguito. Se servissero informazioni particolari su ciascuna di esse, cliccandoci sopra ci si porterà al primo riferimento di tale termine all'interno dei singoli capitoli.
- Var.<
- String.<
- StringTrimLeadingBlanks.<
- GetLine.<
- If.<
- Then.<
- PlaySound.<
- FindJAWSSoundFile.<
- SayMessage.<
- Return.<
- EndIf.<
- SpeechOff.<
- JAWSEnd.<
- Pause.<
- EnterKey.<
- TypeString.<
- SpeechOn.<
- Refresh.<
- SayLine.<
- EndScript.<
Il codice dello Script.
Chi fosse interessato a provare questo script, e non conoscesse il modo di farlo, può consultare l'articolo che parla proprio di come aggiungere uno script alla propria configurazione di Jaws.
In ogni caso, si consiglia di copiarlo, usando l'apposito tasto, per inserirlo solo nel file script dell'applicazione dove s'intende utilizzarlo, in quanto una pressione accidentale in documenti di altri applicativi potrebbe creare effetti indesiderati.
Script RiportaRiga ()
Var String sRiga; variabile dove copiare il contenuto della riga
; memorizza la riga corrente, togliendo eventuali caratteri di ritorno a capo o spazi iniziali
Let sRiga = StringTrimLeadingBlanks (StringReplaceSubstrings (StringReplaceSubstrings (GetLine (), "\R", ""), "\N", ""))
If !sRiga Then; se la riga è priva di contenuto,
PlaySound (FindJAWSSoundFile ("Click3.wav")); suona un file di avviso
SayMessage (OT_ERROR, "La riga è vuota"); informa dell'errore,
Return; e interrompe il flusso
EndIf; fine controllo riga
SpeechOff (); spegne la sintesi
If GetCharacterValue (GetPriorCharacter (1)) > 31 Then; se il carattere precedente non è uno di controllo,, PriorCharacter (); si sposta al carattere precedente
EndIf; fine controllo posizione cursore
PlaySound (FindJAWSSoundFile ("KeyLayerSound.wav")); emette un suono per segnalare l'azione di copia
JAWSEnd (); sposta il cursore a fine riga
Pause (); sospende momentaneamente il flusso
EnterKey (); simula la pressione del tasto Invio
Pause ()
TypeString (sRiga); scrive nella riga corrente il contenuto di quella sopra
Pause ()
JAWSHome (); torna ad inizio riga
SpeechOn (); riattiva la sintesi
Refresh (); resetta la schermata
SayLine (); legge la riga sul cursore
EndScript
Uno Script al giorno, toglie gli ostacoli di torno!
Questo articolo fa parte dell'iniziativa nel titolo, che qui viene presentata nel dettaglio. Sarà, se non altro, l'occasione per dare spazio a script di vari linguaggi, forniti direttamente dagli utenti, oppure messi a punto sulla base di specifiche richieste da questi pervenuteci.
Per ulteriori informazioni, o inviare materiale, rivolgetevi direttamente a: