Logo dell'UIC Logo TUV

Unione Italiana dei Ciechi e degli Ipovedenti ETS - APS

 

Uiciechi.it

torna alla visualizzazione del numero 06 del Uiciechi.it

Numero 06 del 2021

Titolo: Gli script di Jaws 11. Le serie di Script e il nuovo Aiuto in Linea, terza parte.

Autore: Abramo Volpato.


Articolo:
Gli script di Jaws 11. Le serie di Script e il nuovo Aiuto in Linea, terza parte.

Di Abramo Volpato.

Terza parte.

Note.

1. Questa funzione è un classico esempio di quello cui si accennava nel titolo riguardante l'uso delle variabili globali. In questo caso, infatti, possiamo creare una funzione senza parametri, poiché il valore controllato è la variabile globale "gnCampo", che è impostata in altre funzioni della procedura e che, se non già settata in questa fase, fa restituire il valore 1.

Codice.

Int Function CampoGlobale ()
If gnCampo Then; se la variabile globale è già stata impostata,
Return gnCampo; ne restituisce il valore
Else; altrimenti, se è ancora nulla,
Return PRIMA; restituisce il valore Uno
EndIf; fine controllo campo
EndFunction

11.3.14. Scrivere e leggere i record.

All'interno di questo nutrito blocco di funzioni, ed in particolare per i prossimi quattro elementi di codice, troveremo l'ultima evoluzione della scrittura sui file in formato "INI", quella dedicata in particolare ai file di configurazione.

Si tratta della classica doppia coppia, scrittura e lettura, dei due tipi di dato principale, testuale e numerico, di cui proponiamo l'elenco:

1. "WriteSettingString", (ScriviImpostazioniTestuali);

2. "ReadSettingString", (LeggiImpostazioniTestuali);

3. "WriteSettingInteger", (ScriviImpostazioniNumeriche);

4. "ReadSettingInteger", (LeggiImpostazioniNumeriche).

Tutte e quattro queste funzioni integrate elaborano un dato testuale, o un valore, da file configurazione in formato INI, restringendo la ricerca del tipo di archivio o della sua collocazione sulla base di particolari valori numerici da specificare.

Hanno tutte ben sei parametri, dei quali solo gli ultimi due opzionali, che qui elenchiamo di seguito:

1. La sezione dell'archivio in cui operare.

2. La chiave del dato da elaborare.

3. Il dato o il valore da scrivere, nelle due funzioni di scrittura, oppure quello che si vuole sia restituito in caso di dato assente, nelle due funzioni di lettura.

4. Un valore che corrisponde al tipo di file da trattare, sotto forma di costante registrata nel file "HJConst.JSH", e che iniziano con il prefisso "FT_", il quale sta per "FileType", (TipoFile).

5. Un valore, opzionale, che corrisponde alla destinazione di scrittura, nel caso delle omonime funzioni, e di origine lettura, per quelle dell'altro tipo; questi possono essere impostati tramite costanti, che si trovano sempre nel file "HJConst.JSH", rispettivamente con i prefissi "wd", che sta per "WriteDestination", DestinazioneScrittura), ), e "rs", che sta invece per "ReadSource)", (SorgenteLettura).

6. Il nome dell'archivio in cui scrivere; può anche non essere indicato, in quanto opzionale, poiché il nome dell'archivio potrebbe essere già impostato dal tipo di file del quarto parametro; in ogni caso, non è necessario specificare un'estensione al nome dell'archivio, poiché a ciascun tipo di file corrisponde un'estensione predefinita.

Come al solito, inserendo delle funzioni di Jaws nelle nostre, cerchiamo di ridurre il numero di parametri da impostare nelle chiamate. Così, grazie a questa riduzione, quelli da specificare diventeranno quattro per le funzioni di scrittura, e tre per quelle di lettura.

Nel dettaglio, ad essere preimpostati saranno sempre il quarto e quinto parametro delle funzioni native, che saranno rispettivamente:

1. "FT_CURRENT_JCF", (TipoDiFileConfigurazioneCorrente), che imposta come predefinito appunto il file di configurazione dell'applicativo corrente; ciò significa che, qualora nel sesto parametro si indichi un nome di archivio, ad esso sarà comunque posta l'estensione predefinita, ".JCF"; altrimenti, se non si specifica nulla, sarà usato il file di configurazione relativo al programma attivo in quel momento.

2. "FALSE", per impostare i relativi valori predefiniti, che poniamo solo per consentire di specificare anche il successivo parametro con l'eventuale nome archivio.

Esercizio 11.3.15. La funzione ScriveRecord.

FileScript. Default.JSS

Nome. ScriveRecord

Descrizione. Trascrive il record nel file di configurazione indicato, o in quello dell'applicazione corrente, nella sezione e con la chiave specificate, formattandolo in una stringa tra Virgolette.

Ritorni. Di tipo Int. l'esito della scrittura, TRUE o FALSE.

Parametri.

1. sArchivio. Il nome, senza estensione, dell'archivio da elaborare; se si imposta una stringa vuota, viene scritto sul file di configurazione dell'applicativo corrente. Di tipo String.

2. sSezione. La sezione dell'archivio in cui operare. Di tipo String.

3. sChiave. La chiave del dato. Di tipo String.

4. sDato. Il dato da scrivere. Di tipo String.

Novità.

1. La funzione integrata "WriteSettingString ()", già illustrata nella premessa.

2. La costante nativa "FT_CURRENT_JCF", anch'essa già presentata.

Note.

1. In questa funzione il dato da scrivere lo poniamo tra virgolette, così da conservare eventuali spazi a fine stringa che, senza tale accorgimento, andrebbero perduti.

2. Oltre a ciò, diversamente dalle altre funzioni di scrittura fin qui realizzate, subordiniamo il tentativo di scrittura del dato al fatto che sia specificata una chiave; se così non fosse, infatti, non solo il dato non si riuscirebbe a scriverlo ma, soprattutto, sarebbe rimossa l'intera sezione, causando la perdita irreversibile dei dati in essa contenuti.

Codice.

Int Function ScriveRecord (string sArchivio, string sSezione, string sChiave, string sDato)
Let sDato = FormatString (msgVirgolette, sDato); , inserisce il dato in una stringa tra virgolette
If sChiave Then; se la chiave del dato è specificata, restituisce l'esito della scrittura
Return WriteSettingString (sSezione, sChiave, sDato, FT_CURRENT_JCF, FALSE, sArchivio)
Else; altrimenti, se una chiave non c'è,
Return FALSE; restituisce un risultato nullo
EndIf; fine controllo chiave
EndFunction

Collaudo.

Esercizio 11.3.16. La funzione LeggeRecord.

FileScript. Default.JSS

Nome. LeggeRecord

Descrizione. Tenta di rilevare il record dall'archivio di configurazione specificato, o da quello dell'applicazione corrente, nella sezione e con la chiave indicate.

Ritorni. Di tipo String. Il contenuto del record specificato.

Parametri.

1. sArchivio. Il nome, senza estensione, dell'archivio da elaborare; se si imposta una stringa vuota, viene letto dal file di configurazione dell'applicativo corrente. Di tipo String.

2. sSezione. La sezione dell'archivio in cui operare. Di tipo String.

3. sChiave. La chiave del record. Di tipo String.

Novità.

1. La funzione integrata "ReadSettingString ()", già presentata.

Codice.

String Function LeggeRecord (string sArchivio, string sSezione, string sChiave)
; restituisce il dato eventualmente letto , sulla base dei dati specificati, nel file di configurazione.
Return ReadSettingString (sSezione, sChiave, NULLO, FT_CURRENT_JCF, FALSE, sArchivio)
EndFunction

Collaudo.

Esercizio 11.3.17. La funzione ScriveNumerico.

FileScript. Default.JSS

Nome. ScriveNumerico

Descrizione. Trascrive il valore nel file di configurazione indicato, o in quello dell'applicazione corrente, nella sezione e con la chiave specificate.

Ritorni. Di tipo Int. l'esito della scrittura, TRUE o FALSE.

Parametri.

1. sArchivio. Il nome, senza estensione, dell'archivio da elaborare; se si imposta una stringa vuota, viene scritto sul file di configurazione dell'applicativo corrente. Di tipo String.

2. sSezione. La sezione dell'archivio in cui operare. Di tipo String.

3. sChiave. La chiave del valore. Di tipo String.

4. iValore. Il valore numerico da scrivere. Di tipo Int.

Novità.

1. La funzione integrata "WriteSettingInteger ()", già presentata.

Note.

1. Anche in questo caso, subordiniamo il tentativo di scrittura del dato alla presenza di una chiave, grazie ad una struttura di controllo, per evitare la perdita dei dati presenti nella sezione.

Codice.

Int Function ScriveNumerico (string sArchivio, string sSezione, string sChiave, int iValore)
If sChiave Then; se la chiave del dato è specificata, restituisce l'esito della scrittura
Return WriteSettingInteger (sSezione, sChiave, iValore, FT_CURRENT_JCF, FALSE, sArchivio);
Else; altrimenti, se una chiave non c'è,
Return FALSE; restituisce un risultato nullo
EndIf; fine controllo chiave
EndFunction

Esercizio 11.3.18. La funzione LeggeNumerico.

FileScript. Default.JSS

Nome. LeggeNumerico

Descrizione. Tenta di rilevare il valore dall'archivio di configurazione specificato, o da quello dell'applicazione corrente, nella sezione e con la chiave indicate.

Ritorni. Di tipo Int. L'eventuale valore registrato.

Parametri.

1. sArchivio. Il nome, senza estensione, dell'archivio di configurazione da elaborare; se si imposta una stringa vuota, viene letto dal file di configurazione dell'applicativo corrente. Di tipo String.

2. sSezione. Il nome della sezione dell'archivio in cui operare. Di tipo String.

3. sChiave. La chiave del valore da leggere. Di tipo String.

Novità.

1. La funzione integrata "ReadSettingInteger ()", già presentata.

Codice.

Int Function LeggeNumerico (string sArchivio, string sSezione, string sChiave)
; restituisce il valore eventualmente letto , sulla base dei dati specificati, nel file di configurazione.
Return ReadSettingInteger (sSezione, sChiave, FALSE, FT_CURRENT_JCF, FALSE, sArchivio);
EndFunction

Esercizio 11.3.19. La funzione LeggeCampo.

FileScript. Default.JSS

Nome. LeggeCampo

Descrizione. Rileva il campo del record con il numero progressivo indicato, inserito nell'archivio di configurazione dell'applicativo corrente, o con il nome impostato nell'apposita variabile globale.

Ritorni. Di tipo String. Il dato contenuto nel campo indicato del record.

Parametri.

1. sArchivio. Il nome, senza estensione, dell'archivio da elaborare; se si imposta una stringa vuota, viene letto dal file di configurazione dell'applicativo corrente. Di tipo String.

2. sSezione. La sezione dell'archivio in cui operare. Di tipo String.

3. sChiave. La chiave del record. Di tipo String.

4. iCampo. Eventuale numero del campo da estrarre; se non lo si indica, sarà usato quello memorizzato nell'apposita variabile globale. Di tipo Int. Parametro Opzionale.

Novità.

1. Le nostre funzioni "CampoGlobale ()" e "LeggeRecord ()".

Fasi.

1. Una struttura di controllo verifica se nessun parametro sia stato indicato come numero del campo da leggere; se così è, viene utilizzato il valore fornito dalla nostra funzione "CampoGlobale ()", la quale assegna comunque un qualche valore alla variabile locale.

2. Viene poi letto l'intero record di dati, sulla base di quanto specificato dai parametri, grazie all'altra nostra funzione "LeggeRecord ()".

3. In ogni caso, si tenta di restituire il campo impostato del record; se il record è vuoto, o se il campo impostato non è presente nel record, viene restituita una stringa vuota.

Codice.

String Function LeggeCampo (string sArchivio, string sSezione, string sChiave, int iCampo)
Var String sRecord; il record di dati estratto

If! iCampo Then; se non è stato specificato alcun parametro,
Let iCampo = CampoGlobale (); imposta un valore, quello della variabile globale o il valore Uno
EndIf; fine controllo campo
; estrae il record di dati dall'archivio, dell'applicativo corrente o del nome impostato
Let sRecord = LeggeRecord (sArchivio, sSezione, sChiave)
Return StringSegment (sRecord, PIPE, iCampo); restituisce il solo campo richiesto
EndFunction

Collaudo.

1. L'ultimo parametro opzionale della funzione invita ad aprire subito il file documentazione predefinito, cercare la scheda della funzione "LeggeCampo", ed inserire il termine apposito tra il terzo ed il quarto parametro.

Esercizio 11.3.20. La funzione ImpostaNomi.

FileScript. Default.JSS

Nome. ImpostaNomi

Descrizione. Restituisce il nome passato come parametro, e valuta se utilizzarlo come alias o se ricavarlo dagli script personali.

Ritorni. Di tipo String. Il nome passato come primo parametro.

Parametri.

1. sNome. Il nome reale dello script. Di tipo String.

2. sAlias. Per Riferimento. L'eventuale alias da utilizzare nelle schermate d'informazioni. Di tipo String.

Novità.

1. Le nostre funzioni "ScriptPersonale ()" e "LeggeCampo ()".

2. La costante "PERSONALI", che contiene il termine omonimo preceduto dal prefisso della categoria, formando così il nome della sezione dove elaborare gli script a gestione personale.

Fasi.

1. Una struttura di controllo chiama la nostra funzione "ScriptPersonale ()", per verificare se il nome passato come parametro appartiene ad uno script a gestione personale; se così è, procede a registrare in un'altra variabile, che sarà trasmessa per riferimento, il nome virtuale dello script, che è diverso da quello che viene eseguito da Jaws, e viene rilevato tramite la nostra funzione "LeggeCampo ()".

2. Nel caso in cui il nome appartenga ad uno script tradizionale, alla seconda variabile sarà assegnato lo stesso nome di partenza.

3. In ogni caso, il nome originario viene restituito come risultato della funzione.

Codice.

String Function ImpostaNomi (string sNome, string ByRef sAlias)
Var String sSuffisso; l'eventuale suffisso numerico del nome

If ScriptPersonale (sNome, sSuffisso) Then; se il nome è di uno script a gestione personale,
; estrae il nome virtuale dello script dal relativo record di dati
Let sAlias = LeggeCampo (NULLO, PERSONALI, sSuffisso, PRIMA)
Else; altrimenti, in tutti gli altri casi,
Let sAlias = sNome; copia il nome reale in quello virtuale
EndIf; fine controllo nome script
Return sNome; restituisce comunque il parametro nella forma originale
EndFunction

11.3.21. Creare versioni personali delle funzioni native.

Nell'ottavo capitolo, analizzando il file script "Default.JSS", avevamo fatto notare l'iniziale inclusione di numerosi file già compilati, con estensione "JSB". Se ricordate, si tratta di file esterni che aumentano le funzionalità di Jaws, senza tuttavia appesantire il codice sorgente del file script Predefinito.

Sul piano pratico, il fatto che tali funzioni siano assenti dal codice del file script principale, ci consente di poterne modificare il funzionamento. In particolare, è possibile creare dentro a "Default.JSS" una funzione che ha lo stesso nome di una nativa, la quale una volta chiamata esegua prima delle nostre istruzioni, o dei nostri controlli, prima di chiamare casomai la funzione originale.

Nel nostro caso, la funzione integrata si chiama "GetScriptSynopsis ()", già esaminata nell'ottavo capitolo, e che serve a rilevare il sommario del nome di script passato come suo unico parametro. Nel dettaglio, la nostra funzione, che proporremo subito dopo questa premessa, consente di far leggere l'alias di uno script a gestione personale, anziché il nome reale, che come detto non ci dice quale compito svolga.

Questo accorgimento, oltre a semplificare la gestione del codice, consente di poter inserirsi nell'Aiuto tastiera di Jaws, facendo pronunciare il sommario anche degli script a gestione personale, nonostante che tale informazione sia salvata su un nostro file di configurazione anziché sui normali file di documentazione con estensione "JSD".

Esercizio 11.3.22. La funzione GetScriptSynopsis.

FileScript. Default.JSS

Nome. GetScriptSynopsis

Descrizione. Se il nome dello script passato come parametro è uno di quelli a gestione personale, allora legge il sommario inserito nei relativi dati. In tutti gli altri casi, restituisce il sommario impostato tramite la schermata di modifica nell'Editor di script.

Ritorni. Di tipo String. Il sommario relativo allo script indicato.

Parametri.

1. sNome. Il nome dello script di cui rilevare il sommario. Di tipo String.

Note.

1. Nella chiamata della nostra funzione "LeggeCampo ()", nel primo parametro viene specificata una stringa vuota affinché l'informazione sia letta dal file di configurazione dell'applicativo corrente.

Codice.

String Function GetScriptSynopsis (string sNome)
Var String sSuffisso; eventuale suffisso numerico degli script a gestione personale
If ScriptPersonale (sNome, sSuffisso) Then; se lo script è uno di quelli a gestione personale,
; estrae il sommario dello script dai corrispondenti dati per l'applicazione corrente
Return LeggeCampo (NULLO, PERSONALI, sSuffisso, TERZA)
Else; altrimenti, in tutti gli altri casi,
Return GetScriptSynopsis (sNome); restituisce il dato proveniente dalla funzione nativa
EndIf; fine controllo
EndFunction

11.3.23. Il sistema per individuare le serie di script.

Se si torna ad analizzare il funzionamento della precedente versione dell'Aiuto in linea, esso era abbastanza semplice:

1. La funzione "ComprimeDati ()" acquisiva in modo univoco gli abbinamenti tra tasti di attivazione e nomi di script all'interno dei file tasti.

2. Il codice dello script vero e proprio leggeva questi dati, inviandoli subito al Visualizzatore Virtuale opportunamente formattati.

Ora, invece, con l'avvento delle serie di script, non possiamo più consentire questa trascrizione in tempo reale. La soluzione adottata è quella di spostare le informazioni lette in un buffer di memoria temporanea, dove mantenere tali dati finché non si siano controllate anche le informazioni successive, verificandole che non appartengano a script in serie tra loro.

Di questo ,in particolare, si occupa la prossima funzione, dove i dati sono dunque analizzati in prevalenza a coppie. Potrete dunque trovare delle variabili con un nome normale, assieme a delle altre con lo stesso nome ed il prefisso "buffer".

Esercizio 11.3.24. La funzione TrovaSerie.

FileScript. Default.JSS

Nome. TrovaSerie

Descrizione. Controlla se due voci consecutive dell'Aiuto in linea appartengano alla stessa serie numerica.

Ritorni. Di tipo Int. TRUE, nel caso le voci di script confrontate siano in serie; FALSE, qualora non lo siano.

Parametri.

1. sBufferTasto. prima stringa della coppia iniziale da confrontare. Di tipo String.

2. sBufferInfo. Primo termine della seconda coppia. Di tipo String.

3. sTasto. L'altra stringa della coppia iniziale. Di tipo String.

4. sInfo. L'altro termine della seconda coppia. Di tipo String.

5. s1. Per Riferimento. Esito del confronto nella coppia iniziale. Di tipo String.

6. s2. Per Riferimento. Esito del confronto nella seconda coppia. Di tipo String.

7. iSerie. Per Riferimento. Stato delle serie rilevate. Di tipo Int.

Novità.

1. La funzione integrata "StringTrimCommon", (RimuoviDatoTestualeComune); "Se i due termini inseriti sono variabili, li confronta, trasmettendo per riferimento solo l'eventuale contenuto diverso tra le due variabili; ad esempio, se il contenuto della variabile posta come primo parametro è la stringa "Pippo1", mentre nel secondo parametro la variabile indicata equivale alla stringa "Pippo2", la funzione restituirà "1", come prima variabile, e "2", come seconda; la funzione ha anche un terzo parametro opzionale, che serve ad indicare se considerare solo una delle due estremità delle stringhe confrontate, oppure entrambe, ma nel nostro caso non servirà specificarlo.

2. La funzione integrata "GetCharacterValue", (OttieniValoreCarattere); Restituisce il valore del codice Ascii del primo carattere nella stringa indicata nel suo unico parametro.

Note.

1. La funzione compara tutti i dati, utilizzando tra le altre anche le funzioni integrate "StringTrimCommon ()" e "GetCharacterValue ()"; di seguito, esegue una serie di controlli sul fatto che i dati controllati stiano ad indicare degli script in serie.

2. Se così non è, alla prima condizione non vera viene restituito un risultato nullo; altrimenti, se tutti i controlli hanno avuto un riscontro positivo, viene restituito tale esito.

Codice.

Int Function TrovaSerie (string sBufferTasto, string sBufferInfo, ; prima riga con due parametri,
string sTasto, string sInfo, string ByRef s1, string ByRef s2, int ByRef iSerie); e seconda riga
Var Int i1

; salva la prima stringa nel parametro per riferimento, portandola in minuscolo
Let s1 = StringLower (sBufferTasto)
; salva in minuscolo la seconda stringa nel parametro
Let s2 = StringLower (sTasto)
; porta in minuscolo il primo testo della seconda coppia, rimuovendo eventuali caratteri Punto
Let sBufferInfo = StringReplaceSubstrings (StringLower (sBufferInfo), PUNTO, NULLO)
; confronta anche il secondo testo
Let sInfo = StringReplaceSubstrings (StringLower (sInfo), PUNTO, NULLO)
StringTrimCommon (s1, s2); confronta le combinazioni tasti
StringTrimCommon (sBufferInfo, sInfo); confronta le informazioni sugli script
Let i1 = GetCharacterValue (s1); memorizza il codice Ascii del primo carattere rilevato
; se la lunghezza del primo testo variabile è diversa da 1, o è diversa da quella del secondo carattere
If (StringLength (s1) != 1 || StringLength (s1) != StringLength (s2))
; se il primo carattere variabile è diverso dalla cifra 9, ma il secondo non ha un Ascii aumentato di 1,
|| (i1 != 57 && GetCharacterValue (s2) != (i1 + 1))
|| s1 != sBufferInfo ; infine, se i primi caratteri variabili delle due coppie sono diversi,
|| s2 != sInfo Then; oppure, lo sono i secondi caratteri variabili,
If iSerie Then; se la serie di voci era già stata individuata,
Let iSerie = 2; imposta il valore per lo svuotamento del buffer
EndIf; fine controllo stato delle serie
Return FALSE; restituisce un risultato nullo
Else; altrimenti, se il flusso ha superato tutti i controlli,
Return TRUE; restituisce l'esito positivo
EndIf; fine controllo differenze
EndFunction

Esercizio 11.3.25. La funzione TogliePunto.

FileScript. Default.JSS

Nome. TogliePunto

Descrizione. Rimuove un'eventuale carattere Punto presente a fine stringa.

Ritorni. Di tipo String. Il testo eventualmente ripulito del carattere Punto finale.

Parametri.

1. sTesto. La stringa da controllare. Di tipo String.

Note.

1. La funzione nasce dall'esigenza di evitare che, formattando del testo, si creino delle stringhe con due caratteri punto consecutivi, che sarebbero erroneamente pronunciati dalla sintesi.

Codice.

String Function TogliePunto (string sTesto)
Let sTesto = StringTrimTrailingBlanks (sTesto); rimuove eventuali spazi finali
If StringRight (sTesto, 1) == PUNTO Then; se l'ultimo carattere è un Punto fermo,
Return StringTrimTrailingBlanks (StringChopRight (sTesto, 1)); restituisce la stringa senza
Else; altrimenti,
Return sTesto; restituisce la stringa originale, ma almeno ripulita degli spazi finali
EndIf; fine controllo carattere finale
EndFunction

Esercizio 11.3.26. La funzione ToglieUltimo.

FileScript. Default.JSS

Nome. ToglieUltimo

Descrizione. Rimuove l'ultimo carattere da una stringa, assieme ad un eventuale carattere Punto che preceda quelli alfanumerici.

Ritorni. Di tipo String. La stringa privata degli ultimi caratteri.

Parametri.

1. sTesto. La stringa da elaborare. Di tipo String.

Novità.

1. La nostra funzione "TogliePunto ()".

Note.

1. In maniera analoga alla precedente, qui viene rimosso l'ultimo carattere da una stringa, badando che si tratti ad esempio del suffisso numerico di uno script in serie, e non di un carattere Punto, in quest'ultimo caso chiamando la nostra funzione "TogliePunto ()".

Codice.

String Function ToglieUltimo (string sTesto)
; restituisce la stringa senza l'ultimo carattere, al netto di eventuali punti finali
Return StringChopRight (TogliePunto (sTesto), 1)
EndFunction

Esercizio 11.3.27. La funzione AggiornaVisualizzatore.

FileScript. Default.JSS

Nome. AggiornaVisualizzatore

Descrizione. Gestisce l'invio delle voci dell'Aiuto in linea al Visualizzatore Virtuale, differenziandole tra le voci normali e quelle delle serie di script.

Ritorni. Di tipo Void. Nessuno.

Parametri.

1. sTasto. La combinazione tasti che attiva lo script. Di tipo String.

2. sNome. Il nome dello script elaborato. Di tipo String.

3. sAlias. La versione virtuale del nome dello script. Di tipo String.

4. sInfo. Le informazioni raccolte. Di tipo String.

5. sPrimo. Il primo carattere variabile rilevato. Di tipo String. Parametro Opzionale.

6. sUltimo. L'ultimo carattere variabile rilevato. Di tipo String. Parametro Opzionale.

Novità.

1. La nostra funzione "ToglieUltimo ()".

Note.

1. La funzione, dotata di un'unica struttura di controllo, smista le due diverse modalità di formattazione in base al fatto che si debbano riportare le informazioni su script singoli oppure in serie, servendosi appunto anche della nostra funzione "ToglieUltimo ()".

Codice.

Void Function AggiornaVisualizzatore (string sTasto, string sNome, ; riga con i primi due,
string sAlias, string sInfo, string sPrimo, string sUltimo); seconda riga con gli altri quattro
If !sPrimo Then; se si stanno aggiornando le normali voci,
UserBufferAddText ( ; compone la riga d'informazioni, comprensiva del link,
FormatString (hlpInfoScript, sInfo, sTasto), ; formatta il testo da visualizzare,
FormatString (hlpInfoLink, sNome), ; formatta anche il comando da eseguire,
sAlias); e aggiunge il nome virtuale per l'elenco dei link
Else; altrimenti, per le serie di voci,
UserBufferAddText ( ; compone la riga d'informazioni, formattando i caratteri variabili
FormatString (hlpInfoSerie, ToglieUltimo (sInfo), ToglieUltimo (sTasto), sPrimo, sUltimo))
EndIf; fine controllo parametri
EndFunction

Esercizio 11.3.28. La funzione AggiungePunto.

FileScript. Default.JSS

Nome. AggiungePunto

Descrizione. Aggiunge un carattere Punto al termine della stringa indicata, solo nel caso non ci sia già.

Ritorni. Di tipo String. La stringa eventualmente completata.

Parametri.

1. sTesto. Per Riferimento. La stringa da controllare. Di tipo String.

Codice.

String Function AggiungePunto (string ByRef sTesto)
Let sTesto = StringTrimTrailingBlanks (sTesto); toglie eventuali spazi finali alla riga
If StringRight (sTesto, 1) != PUNTO Then; se l'ultimo carattere della stringa non è un punto,
Return sTesto + PUNTO; la restituisce aggiungendolo
Else; altrimenti,
Return sTesto; restituisce la forma originale
EndIf; fine controllo carattere finale
EndFunction

Esercizio 11.3.29. La nuova versione di AiutoInLinea ().

FileScript. Default.JSS

Nome. AiutoInLinea

Novità.

1. Le nostre funzioni "ComponeAiuto ()", "ImpostaNomi ()", "TrovaSerie ()", "AggiornaVisualizzatore ()" e "AggiungePunto ()".

2. La funzione integrata "InHJDialog", (DentroFinestraDialogoDiJaws); Restituisce un valore positivo se si esegue uno script, o si chiama una funzione, quando è già aperta una finestra di dialogo di Jaws. Senza parametri.

3. La nostra versione di "GetScriptSynopsis ()", che serve a fornire il sommario anche nei nostri script a gestione personale.

Note.

1. Le differenze tra le due versioni sono così numerose che conviene riscrivere da zero il codice. In particolare, sono state aggiunte varie fasi, la prima delle quali serve a decidere, sulla base del fatto che si sia dentro una finestra di dialogo di Jaws, e che siano impostate delle variabili globali, se si debba attivare l'Aiuto tradizionale oppure quello che prende le informazioni dai tasti attivi; in particolare, qui sono coinvolte la nostra funzione "ComponeAiuto ()" e quella nativa "InHJDialog ()".

2. La seconda struttura di controllo determina, verificando se ci si trovi nell'Editor di Script, se visualizzare eventuali script per l'applicativo corrente, oppure soltanto quelli del file script predefinito.

3. I due cicli, quello che scorre i diversi archivi e quello che analizza le informazioni degli script, hanno un comportamento simile alla versione precedente, almeno finché si arriva al momento di inviare i dati al Visualizzatore Virtuale; qui sono utilizzate anche la nostra funzione "ImpostaNomi ()", e quella con il nome nativo da noi aggiornata, "GetScriptSynopsis ()".

4. Come accennato in precedenza, gli aggiornamenti nel codice prevedono dei controlli sui singoli dati, verificando se lo script analizzato al momento è in serie rispetto all'ultimo registrato, grazie alla nostra "TrovaSerie ()". A tal fine, si utilizzano, come detto, delle coppie di variabili, dove quella con il prefisso "buffer" è relativa al penultimo script, mentre le variabili con il nome normale sono quelle dello script corrente.

5. In ogni caso, durante la scansione delle sezioni e delle chiavi, qualora lo script corrente non fosse individuato come in serie al penultimo analizzato, saranno i dati di quest'ultimo ad essere salvati, mentre quelli correnti andranno ad aggiornare le variabili che costituiscono il buffer di memoria; in ogni caso, ad occuparsi di queste trascrizioni sarà la nostra funzione "AggiornaVisualizzatore ()", la quale a sua volta utilizza anche l'altra nostra funzione, "AggiungePunto ()".

6. Al termine dei cicli, si svuota comunque il buffer di memoria, trascrivendo gli ultimi dati che non erano ancora stati inviati al Visualizzatore Virtuale, singoli o in serie che fossero.

7. Così come nella precedente versione, alla fine si formattano ed inviano i messaggi predefiniti di chiusura schermata informativa, e si avvia la pronuncia del suo contenuto.

Codice.

Script AiutoInLinea ()
Var
Int j, ; contatore del ciclo primario
Int iStart, ; valore iniziale del ciclo
Int k, ; contatore del secondo ciclo
String sFile, ; file tasti da elaborare
String sTitolo, ; titolo per inizio informazioni
String sPrimi, ; elenco iniziale dei tasti
String sChiavi, ; elenco combinazioni tasti rilevate
String sDati, ; nomi di script abbinati ai tasti
String sTasto, ; singola combinazione tasti che funge da chiave
String sNome, ; singolo script abbinato
String sInfo, ; informazioni da visualizzare
String sAlias, ; nome alternativo dello script
Int iSerie, ; indica una serie avviata
String sBufferTasto, ; stringa registrata delle combinazioni tasti
String sBufferNome, ; stringa registrata del nome di script
String sBufferAlias, ; stringa registrata con l'alias dello script
String sBufferInfo, ; stringa registrata delle informazioni sugli script
String s1, ; primo carattere variabile
String s2, ; ultimo carattere variabile
String sPrimoDiverso, ; carattere variabile iniziale della serie
String sUltimoDiverso; carattere variabile finale della serie

EnsureNoUserBufferActive (); chiude eventuali schermate del Visualizzatore Virtuale
If InHJDialog () Then; se si è in una procedura Jaws,
If !gsTitolo ; se nessun titolo è registrato per la finestra corrente,
|| !gsEtichette Then; oppure, se non ci sono pulsanti di scelta,
SayMessage (OT_ERROR, hlpNoInLinea, hlpNoInLinea_corto); pronuncia l'avviso,
Return; e interrompe il flusso
Else; altrimenti,
ComponeAiuto (); crea e visualizza le informazioni di contesto,
Return; e interrompe il flusso
EndIf; fine controllo titolo
EndIf; fine controllo tipo finestra
If ApplicativoCorrente () != JAWS_FILE Then; se non si è nell'Editor di Script
Let iStart = APP; imposta di iniziare dal file tasti dell'applicativo corrente
Else; altrimenti,
Let iStart = JAWS; riduce la scansione al solo file tasti predefinito
EndIf; fine controllo valore iniziale
For j = iStart To JAWS; scorre i tipi di file tasti
Let sFile = NomeArchivio (j); imposta il nome del file tasti da elaborare
; crea gli elenchi leggendo dalle sezioni specificate dell'archivio
If ComprimeDati (sFile, lstSezioniTasti, sChiavi, sDati) Then; se dei tasti sono stati rilevati,
If j == APP Then; se si sta elaborando il file tasti dell'applicazione corrente,
; formatta il titolo dell'Aiuto con il nome dell'applicativo
Let sTitolo = FormatString (hlpInfoApp, GetActiveConfiguration ())
Let sPrimi = sChiavi; registra il primo elenco di tasti
ElIf j == JAWS Then; se si sta invece elaborando il file tasti predefinito,
Let sTitolo = hlpInfoJaws; imposta il relativo titolo per l'Aiuto
If UserBufferGetLength ()Then; se nel Visualizzatore Virtuale è presente del testo,
UserBufferAddText (FormatString (msgTraVuote, sTitolo)); inizializza la seconda parte
EndIf; fine controllo testo Aiuto
EndIf; fine controllo passaggi
For k = 1 To StringSegmentCount (sChiavi, PIPE); scorre le combinazioni tasti rilevate
Let sTasto = StringSegment (sChiavi, PIPE, k); estrae la combinazione tasti da verificare
If j == APP ; se si è al primo passaggio,
|| !StringSegmentIndex (sPrimi, PIPE, sTasto, TRUE) Then; o, se i tasti non ci sono già,
If !UserBufferGetLength ()Then; se il Visualizzatore Virtuale è vuoto,
UserBufferAddText (sTitolo + LF); lo inizializza con l'apposito titolo
EndIf; fine controllo creazione testo
If sTasto != GetCurrentScriptKeyName () Then; se i tasti non sono quelli di attivazione,
; memorizza il nome reale dello script abbinato, e dell'alias proposto nelle informazioni
Let sNome = ImpostaNomi (StringSegment (sDati, PIPE, k), sAlias)
; legge il sommario, tramite la nostra funzione creata con il nome di quella nativa
Let sInfo = GetScriptSynopsis (sNome)
If !sInfo Then; se nessuna informazione è stata rilevata,
Let sInfo = sAlias; usa come informazione il nome assegnato allo script
EndIf; fine controllo presenza informazioni
If !TrovaSerie (sBufferTasto, sBufferInfo, sTasto, sInfo, s1, s2, iSerie) ; se le ultime due voci non sono in serie,
&& !iSerie Then; e una serie non è già stata rilevata,
If sBufferTasto Then; se i dati dello script precedente sono stati rilevati,
AggiornaVisualizzatore (sBufferTasto, sBufferNome, sBufferAlias, sBufferInfo, NULLO, NULLO)
EndIf; fine controllo presenza buffer
Else; altrimenti, se una serie è stata rilevata,
If !iSerie Then; se si è all'avvio della serie,
Let sPrimoDiverso = StringUpper (s1); memorizza il primo carattere diverso della serie, portandolo i maiuscolo qualora sia una lettera,
Let iSerie = TRUE; e ne annota l'avvio
ElIf iSerie == 1 Then; se invece la serie continua,
Let sUltimoDiverso = StringUpper (s2); annota l'ultimo carattere, portandolo i maiuscolo qualora sia una lettera
Else; altrimenti, se una serie si conclude,
AggiornaVisualizzatore (sBufferTasto, NULLO, NULLO, sBufferInfo, sPrimoDiverso, sUltimoDiverso)
Let iSerie = FALSE; annulla il valore
EndIf; fine controllo serie attiva
EndIf; fine controllo presenza serie
; aggiorna i dati memorizzati per:
Let sBufferTasto = sTasto; combinazione tasti
Let sBufferNome = sNome; nome dello script
Let sBufferAlias = sAlias; alias dello script
Let sBufferInfo = AggiungePunto (sInfo); informazioni sullo script
EndIf; fine controllo tasti validi
EndIf; fine controllo tasti già elaborati
EndFor; fine ciclo scorrimento chiavi
If !iSerie Then; se non è attiva alcuna serie,
AggiornaVisualizzatore (sBufferTasto, sBufferNome, sBufferAlias, sBufferInfo, NULLO, NULLO); trascrive l'ultima voce
Else; altrimenti,
AggiornaVisualizzatore (sBufferTasto, NULLO, NULLO, sBufferInfo, sPrimoDiverso, sUltimoDiverso); annota l'ultima serie,
Let iSerie = FALSE; e ne annulla il valore
EndIf; fine controllo attivazione serie
Let sBufferTasto = NULLO; resetta il dato, per il successivo inizio
EndIf; fine controllo presenza chiavi
EndFor; fine ciclo scorrimento file
If UserBufferGetLength ()Then; se nel Visualizzatore Virtuale è presente del testo,
UserBufferActivate (); visualizza la schermata d'informazioni,
; quindi, prima formatta un testo con i tasti dello script chiamante e la formula di chiusura,
Let sInfo = FormatString (hlpUltimaInfo, GetCurrentScriptKeyName (), hlpFineInfo);
; poi, la trasmette al Buffer, avviandone la lettura.
RedirectToUserBuffer (sInfo)
EndIf; fine controllo presenza testo
EndScript

Collaudo.

1. In questo caso, se la compilazione riesce, il collaudo può anche limitarsi al premere i tasti di attivazione, "Insert+H", da dentro una qualsiasi applicazione per i quali esistano dei nostri script.

2. Se così si facesse, per il momento non dovrebbe essere cambiato nulla rispetto al numero ed al tipo di informazioni prodotte dal nostro Aiuto.

3. Più avanti, quando appronteremo le diverse procedure guidate, sarà possibile completare questo collaudo, sperimentando l'Aiuto sensibile al contesto da noi già predisposto in questo capitolo.

11.10. Riepilogo.

Analizzando quanto sin qui fatto, dal primo al terzo capitolo abbiamo proposto una sorta di introduzione agli script, senza nemmeno sapere cosa fossero ad esempio le variabili. Dal quarto al decimo capitolo, in modo progressivo, ci siamo sempre più addentrati nei molti aspetti da conoscere sul funzionamento di Jaws, e sul modo migliore per realizzarne efficaci script.

A partire da questo capitolo, e sino al termine di quest'opera divulgativa, ci spingeremo anche un po' oltre i limiti degli script per Jaws, sconfinando in un territorio certamente più adatto alla programmazione vera e propria. Ma tant'è, qui siamo arrivati, e ormai siamo in ballo: non ci resta che ballare sino in fondo!

Questo capitolo, in particolare, l'abbiamo iniziato con un argomento che ha fatto un po' da ponte tra la precedente e l'attuale parte delle nostre fatiche, come quello della serie di script applicato ai contrassegni numerati. Già aumentando le funzionalità dell'Aiuto in linea abbiamo compiuto un passo in più, anche se ci siamo limitati a gettare le basi per un qualcosa che potremo apprezzare solo quando tutti i pezzi delle nostre procedure saranno completati.

Alla fine del prossimo capitolo, in ogni caso, saremo in grado di effettuare delle ricerche rapide di stringhe testuali predeterminate, attivabili con la pressione di combinazioni tasti. A tal fine, realizzeremo uno strumento di ricerca che scorrerà i nostri documenti, tentando il più possibile di farlo allo stesso modo in tutti gli applicativi di nostro interesse.

11.10.1. Elementi di Codice Personale.

ToglieTab. File script: Predefinito. Funzione.
- Rimuove gli eventuali caratteri di Tabulazione, Ascii 9, dalla stringa passata come parametro.

ImpostaPipe. File script: Predefinito. Funzione.
- Qualora non sia specificato alcun carattere o stringa come separatore, viene impostato a tale scopo il carattere Pipe, Ascii 124.

TroncaTesto. File script: Predefinito. Funzione.
- Mantiene, o elimina, la parte iniziale, oppure quella finale, del testo specificato, fino alla prima, o al numero indicato, di occorrenze di un carattere di separazione. Questo separatore sarà il carattere o la stringa specificata, oppure il carattere Pipe, qualora non si specifichi nulla.

CaricaScript. File script: Predefinito. Funzione.
- Raccoglie il codice di uno script, memorizzandone tutte le istruzioni, come opzione predefinita, oppure prelevando soltanto il contenuto senza la riga d'intestazione ed il comando di chiusura.

ImpostaConfigurazione. File script: Predefinito. Funzione.
- Qualora il nome di archivio indicato non abbia un'estensione, vi aggiunge quella predefinita dei file configurazione.

SezioniUtente. File script: Predefinito. Funzione.
- Rileva le sezioni presenti nel file di configurazione indicato, all'interno della cartella con le Impostazioni per l'Utente.

ChiaviUtente. File script: Predefinito. Funzione.
- Rileva le chiavi nella sezione e archivio specificati, all'interno della cartella delle Impostazioni per l'Utente.

LeggeUtente. File script: Predefinito. Funzione.
- Rileva il dato della chiave indicata, nella sezione e archivio specificati all'interno della cartella delle Impostazioni per l'Utente.

TrovaSezione. File script: Predefinito. Funzione.
- Verifica nell'archivio tasti specificato la presenza di uno script, trasmettendo per riferimento sia la sezione dove è stata eventualmente trovata l'assegnazione, sia i tasti di attivazione ad esso abbinati.

CambiaCampo. File script: Predefinito. Funzione.
- Sovrascrive, Aggiunge o rimuove un campo di un record, sulla base dei parametri specificati.

ElencoNumeri. File script: Predefinito. Funzione.
- Crea un elenco di scelte numeriche, in forma testuale, che parte dal valore indicato e termina con quello predefinito nella variabile MAX_VOCI.

SceltaValore. File script: Predefinito. Funzione.
- Consente di scegliere il valore corrispondente ad una delle voci proposte nell'elenco della finestra di dialogo.

RigaCorrente. File script: Predefinito. Funzione.
- Rileva il contenuto della riga in cui è posizionato il cursore, o intero, oppure dal cursore a fine riga o dall'inizio al cursore, sulla base dei valori indicati come parametro.

CambiaControllo. File script: Predefinito. Funzione.
- Consente di interagire con una finestra dotata di controlli tra i quali spostarsi, dovendo indicare un comando da premere per muoversi tra i campi, e casomai specificare anche un testo da inserire in quello attivo.

CreaSerie. File script: Predefinito. Shift+Control+Windows+P.
- Crea una serie di script da quello corrente.

SalvaContrassegno1. File script: Predefinito. Control+Windows+1.
- Registra il contrassegno denominato 1.

TornaContrassegno1. File script: Predefinito. Alt+Windows+1.
- Torna al contrassegno denominato 1.

NoAmpersand. File script: Predefinito. Funzione.
- Rimuove i caratteri E Commerciale eventualmente presenti nella stringa passata come parametro.

PremeTasto. File script: Predefinito. Funzione.
- Formatta una stringa con il comando che simula la pressione del tasto specificato come parametro.

ComponeAiuto. File script: Predefinito. Funzione.
- Raccoglie i dati in memoria per comporre le informazioni dell'Aiuto in linea.

ApplicativoCorrente. File script: Predefinito. Funzione.
- Determina il nome dell'applicativo corrente, convertendolo in quello predefinito di Jaws qualora ci si trovi nell'Editor di Script.

NomeArchivio. File script: Predefinito. Funzione.
- Imposta il nome del file archivio da elaborare, sulla base del valore specificato come parametro, restituendolo con l'aggiunta dell'opportuna estensione.

ComprimeDati. File script: Predefinito. Funzione.
- Raccoglie i dati di un archivio, prelevandoli dalle sezioni specificate, evitando che vi siano delle ripetizioni.

ScriptPersonale. File script: Predefinito. Funzione.
- Controlla che il nome di script indicato sia uno di quelli a gestione personale.

CampoGlobale. File script: Predefinito. Funzione.
- Controlla la registrazione di un numero di campo, casomai impostandone il valore iniziale.

ScriveRecord. File script: Predefinito. Funzione.
- Trascrive il record nel file di configurazione indicato, o in quello dell'applicazione corrente, nella sezione e con la chiave specificate, formattandolo in una stringa tra Virgolette.

LeggeRecord. File script: Predefinito. Funzione.
- Tenta di rilevare il record dall'archivio di configurazione specificato, o da quello dell'applicazione corrente, nella sezione e con la chiave indicate.

ScriveNumerico. File script: Predefinito. Funzione.
- Trascrive il valore nel file di configurazione indicato, o in quello dell'applicazione corrente, nella sezione e con la chiave specificate.

LeggeNumerico. File script: Predefinito. Funzione.
- Tenta di rilevare il valore dall'archivio di configurazione specificato, o da quello dell'applicazione corrente, nella sezione e con la chiave indicate.

LeggeCampo. File script: Predefinito. Funzione.
- Rileva il campo del record con il numero progressivo indicato, inserito nell'archivio di configurazione dell'applicativo corrente, o con il nome impostato nell'apposita variabile globale.

ImpostaNomi. File script: Predefinito. Funzione.
- Restituisce il nome passato come parametro, e valuta se utilizzarlo come alias o se ricavarlo dagli script personali.

GetScriptSynopsis. File script: Predefinito. Funzione.
- Se il nome dello script passato come parametro è uno di quelli a gestione personale, allora legge il sommario inserito nei relativi dati. In tutti gli altri casi, restituisce il sommario impostato tramite la schermata di modifica nell'Editor di script.

TrovaSerie. File script: Predefinito. Funzione.
- Controlla se due voci consecutive dell'Aiuto in linea appartengano alla stessa serie numerica.

TogliePunto. File script: Predefinito. Funzione.
- Rimuove un'eventuale carattere Punto presente a fine stringa.

ToglieUltimo. File script: Predefinito. Funzione.
- Rimuove l'ultimo carattere da una stringa, assieme ad un eventuale carattere Punto che preceda quelli alfanumerici.

AggiornaVisualizzatore. File script: Predefinito. Funzione.
- Gestisce l'invio delle voci dell'Aiuto in linea al Visualizzatore Virtuale, differenziandole tra le voci normali e quelle delle serie di script.

AggiungePunto. File script: Predefinito. Funzione.
- Aggiunge un carattere Punto al termine della stringa indicata, solo nel caso non ci sia già.

AiutoInLinea. File script: Predefinito. Windows+H.
- Elenca gli script Personali.

11.10.2. Script, Funzioni e Comandi di Jaws.

Abs. (Assoluto).
- Restituisce il valore assoluto di un numero, senza un eventuale segno negativo.

StringReverse. (DatoTestualeInvertito).
- Restituisce la stringa passata come parametro con i caratteri invertiti, da destra a sinistra.

StringChopLeft. (TagliaDatoTestualeASinistra).
- Rimuove la parte a sinistra di una stringa, a partire dal numero di caratteri indicati.

StringChopRight. (TagliaDatoTestualeADestra).
- Rimuove la parte a destra di una stringa, a partire dal numero di caratteri indicati.

PriorCharacter. (CaratterePrecedente).
- Sposta al carattere precedente.

IniReadSectionNamesEx. (LeggiNomiSezioniFileIniUlteriore).
- Rileva le sezioni del file di configurazione specificato, limitandone la ricerca nella cartella di cui si indica il valore identificativo.

GetToEndOfLine. (OttieniVersoFineRiga).
- Rileva il testo dalla posizione del cursore sino a fine riga corrente.

GetFromStartOfLine. (OttieniDaInizioRiga).
- Rileva il testo dalla posizione del cursore fino all'inizio della riga corrente.

SetLastScriptKey. (ImpostaUltimiTastiScript).
- Simula la pressione dei tasti indicati, come se fossero stati gli ultimi premuti dall'utente.

GetScriptDescription. (OttieniDescrizioneScript).
- Rileva la descrizione dello script indicato, immessa nell'omonimo campo durante la procedura guidata di creazione.

IniWriteStringEx. (ScriviDatoTestualeFileIniUlteriore).
- Scrive un dato testuale in un archivio in formato ini, collocandolo nella cartella indicata dal valore identificativo specificato.

StringUpper. (DatoTestualeMaiuscolo).
- Converte in caratteri tutti maiuscoli il testo specificato.

UserBufferAddLink. (AggiungiLinkBufferUtente).
- Aggiorna il contenuto dell'ambiente virtuale, ponendovi solo i primi tre dati per il collegamento che esegue il comando abbinato.

StringDiff. (DifferenzeDatiTestuali).
- Restituisce la parte del primo termine indicato che non sia preceduto o seguito dal contenuto della seconda stringa.

WriteSettingString. (ScriviImpostazioniTestuali).
- Scrive un dato testuale su file configurazione in formato INI, restringendo il tipo di archivio o la sua destinazione sulla base dei valori numerici specificati.

ReadSettingString. (LeggiImpostazioniTestuali).
- Legge un dato testuale da file configurazione in formato INI, restringendo la ricerca del tipo di archivio o della sua collocazione sulla base dei valori numerici specificati.

WriteSettingInteger. (ScriviImpostazioniNumeriche).
- Scrive un valore su file configurazione in formato INI, restringendo il tipo di archivio o la sua destinazione sulla base dei valori numerici specificati.

ReadSettingInteger. (LeggiImpostazioniNumeriche).
- Legge un valore da file configurazione in formato INI, restringendo la ricerca del tipo di archivio o della sua collocazione sulla base dei valori numerici specificati.

StringTrimCommon. (RimuoviDatoTestualeComune).
- "Se i due termini inseriti sono variabili, ne ritorna il contenuto rimuovendo le parti comuni delle due stringhe; tramite il terzo parametro, si può decidere se rimuovere solo le parti condivise iniziali, finali o entrambe."

GetCharacterValue. (OttieniValoreCarattere).
- Restituisce il valore del codice Ascii del primo carattere nella stringa indicata.

InHJDialog. (DentroFinestraDialogoDiJaws).
- Restituisce un valore positivo se si esegue uno script, o si chiama una funzione, quando è già aperta una finestra di dialogo di Jaws.

11.10.3. Voci di Glossario.

record.
- Insieme di più elementi, detti anche campi, dove sono memorizzati una serie di dati che sono rintracciabili in un archivio tramite una o più chiavi di ricerca.

campo.
- Singolo elemento di un record, estraibile di solito tramite la posizione progressiva nel record stesso.

Ampersand. (E Commerciale).
- L'omonimo carattere, che qui viene usato per identificare le stringhe che vanno cercate all'interno, non all'inizio, di un testo.

EseguePersonali.
- Nome base degli script a gestione personale, da completare con un suffisso numerico da 1 a 99.

FT_. (TipoFile).
- Prefisso di una serie di costanti native, le quali indicano le tipologie di file configurazione da elaborare.

wd. (DestinazioneScrittura).
- Prefisso di una serie di costanti native, le quali indicano le cartelle dove creare, o aggiornare, i file di configurazione su cui scrivere i dati in formato INI.

rs. (SorgenteLettura).
- Prefisso di una serie di costanti native, le quali indicano le cartelle dove leggere i dati memorizzati nei file di configurazione in formato INI.

buffer. (Riserva).
- Nel nostro caso, prefisso utilizzato per alcune variabili che servono a mantenere in memoria dei dati relativi ad uno script analizzato in precedenza.

Per ulteriori spiegazioni, scrivere a:
Abramo Volpato, oppure a: Nunziante Esposito



Torna alla pagina iniziale della consultazione delle riviste

Oppure effettua una ricerca per:


Scelta Rapida