Cursul Jaws Scripting - demarare si desfasurare
- Manu
- General de divizie
- Mesaje: 4120
- Membru din: 02 Feb 2007, 01:15
- Localitate: Cluj-Napoca
- Contact:
Cursul Jaws Scripting - demarare si desfasurare
In acest post sunt prezentate cateva informatii preliminare in legatura cu organizarea cursului despre Jaws Scripting.
Dupa ce se stabileste clar cine participa, este nevoie de adresele de mail ale tuturora pentru a crea o lista de discutii dedicata.
Trimiteti adresa de mail la emanuelboboiu (a rond) gmail.com.
Pentru a fi sigur ca doriti sa participati, cititi urmatorul post la care se ajunge apasand tasta "h", post care contine un mic test de evaluare. Daca considerati ca indepliniti conditiile, va inscrieti trimitand adresa dumneavoastra de mail la adresa mentionata mai sus.
Al treilea post din acest topic, celd e dupa test, contine cateva informatii generale din care veti intelege mai clar ce sunt scripturile.
Pentru a fi la curent cu tot ceea ce tine de curs, pana ca acesta sa fie demarat propriu-zis, urmariti acest topic de pe forum, o solutie simpla ar fi adaugarea paginii curente la Favorite / Preferinte.
Succes
Dupa ce se stabileste clar cine participa, este nevoie de adresele de mail ale tuturora pentru a crea o lista de discutii dedicata.
Trimiteti adresa de mail la emanuelboboiu (a rond) gmail.com.
Pentru a fi sigur ca doriti sa participati, cititi urmatorul post la care se ajunge apasand tasta "h", post care contine un mic test de evaluare. Daca considerati ca indepliniti conditiile, va inscrieti trimitand adresa dumneavoastra de mail la adresa mentionata mai sus.
Al treilea post din acest topic, celd e dupa test, contine cateva informatii generale din care veti intelege mai clar ce sunt scripturile.
Pentru a fi la curent cu tot ceea ce tine de curs, pana ca acesta sa fie demarat propriu-zis, urmariti acest topic de pe forum, o solutie simpla ar fi adaugarea paginii curente la Favorite / Preferinte.
Succes
Ultima oară modificat 22 Dec 2009, 19:10 de către Manu, modificat de 5 ori în total.
Errare humanum est, sed perseverare diabolicum...
In forum linguae Latinae venite! (via est: www.limbalatina.ro)
In forum linguae Latinae venite! (via est: www.limbalatina.ro)
- Manu
- General de divizie
- Mesaje: 4120
- Membru din: 02 Feb 2007, 01:15
- Localitate: Cluj-Napoca
- Contact:
PRELIMINARII LA JAWS SCRIPTING
Pentru a înţelege acest curs, este necesară o cunoaştere temeinică a modului de funcţionare Jaws for Windows, practic scripting-ul fiind o latură avansată a întreg mecanismului de accesibilizare creat de Freedom Scientific.
Pentru a vă da seama dacă sunteţi pregătit sau nu de învăţareA / înţelegereA Jaws Scripting-ului, supuneţi-vă la următorul test alcătuit din trei itemi.
Încercaţi să rezolvaţi pe cont propriu următoarele CERINŢE, iar dacă răspunsul este cunoscut, înseamnă că este Îndeplinită condiţia minimă pentru a continua.
Întrebări:
1. Care sunt paşii pentru a citi cu Jaws Cursor al treilea rând al ferestrei curente? Important e să fiţi sigur că citiţi exact al treilea rând şi că vă aflaţi în fereastra curentă cu Jaws Cursor.
2. Cum se numeşte unealta Jaws cu ajutorul căreia se fac cele mai multe setări valabile definitiv pentru diferite aplicaţii sau în general? De aici se fac setări precum: citirea graficelor (toate, cele etichetate sau niciunul), detectarea automată a limbii, nivelul utilizatorului (biginer, intermediate sau advanced) etc..
3. Ce este un edit-box, radio-buton şi check-box?
Aşadar, dacă credeţi că ceea ce a fost expus mai sus sub formă de întrebări vă este cunoscut, nu mai e nevoie decât de logică, creativitate şi imaginaţie pentru a reuşi în viitor să REALIZAŢI scripturi de unul singur.
Cursul se va desfasura prin Skype.
Pentru a înţelege acest curs, este necesară o cunoaştere temeinică a modului de funcţionare Jaws for Windows, practic scripting-ul fiind o latură avansată a întreg mecanismului de accesibilizare creat de Freedom Scientific.
Pentru a vă da seama dacă sunteţi pregătit sau nu de învăţareA / înţelegereA Jaws Scripting-ului, supuneţi-vă la următorul test alcătuit din trei itemi.
Încercaţi să rezolvaţi pe cont propriu următoarele CERINŢE, iar dacă răspunsul este cunoscut, înseamnă că este Îndeplinită condiţia minimă pentru a continua.
Întrebări:
1. Care sunt paşii pentru a citi cu Jaws Cursor al treilea rând al ferestrei curente? Important e să fiţi sigur că citiţi exact al treilea rând şi că vă aflaţi în fereastra curentă cu Jaws Cursor.
2. Cum se numeşte unealta Jaws cu ajutorul căreia se fac cele mai multe setări valabile definitiv pentru diferite aplicaţii sau în general? De aici se fac setări precum: citirea graficelor (toate, cele etichetate sau niciunul), detectarea automată a limbii, nivelul utilizatorului (biginer, intermediate sau advanced) etc..
3. Ce este un edit-box, radio-buton şi check-box?
Aşadar, dacă credeţi că ceea ce a fost expus mai sus sub formă de întrebări vă este cunoscut, nu mai e nevoie decât de logică, creativitate şi imaginaţie pentru a reuşi în viitor să REALIZAŢI scripturi de unul singur.
Cursul se va desfasura prin Skype.
Ultima oară modificat 24 Dec 2009, 21:49 de către Manu, modificat de 2 ori în total.
Errare humanum est, sed perseverare diabolicum...
In forum linguae Latinae venite! (via est: www.limbalatina.ro)
In forum linguae Latinae venite! (via est: www.limbalatina.ro)
- Manu
- General de divizie
- Mesaje: 4120
- Membru din: 02 Feb 2007, 01:15
- Localitate: Cluj-Napoca
- Contact:
JAWS SCRIPTING
INFORMAŢII GENERALE
Când este folosit cu diferite aplicaţii, Jaws for Windows vă oferă diferite informaţii prezente în acestea. Instrucţiunile care îi spun Jaws-ului cum să se comporte sunt conţinute într-un set de fişiere „default”. Aceste fişiere „default” sunt create de Freedom Scientific, vin şi rulează odată cu Jaws. Din păcate, nu toate programele sunt la fel, nu există un standard absolut în ceea ce priveşte comportamentul, afişarea informaţiilor pe ecran etc.. Prin urmare, instrucţiunile care îi spun Jaws-ului cum să se comporte în aceste aplicaţii se găsesc într-un set de fişiere specifice, particularizate pentru fiecare program.
Multe setări, schimbări, ajustări, pentru situaţii obişnuite pot fi efectuate din opţiunile Jaws-ului, precum Verbosity sau Screen Echo. În ciuda acestor posibilităţi, se găsesc întotdeauna situaţii speciale în care Jaws are nevoie de instrucţiuni mult mai avansate, specifice, astfel încât screen-reader-ul să poată naviga corect, să returneze informaţii dorite.
Un fişier-script conţine o serie de scripturi şi funcţii. Scripturile şi funcţiile pot fi considerate mici programe; fiecare script sau funcţie constă în secvenţe de cod care îi spun Jaws-ului cum să se mişte sau ce să spună în diferite ipostaze. Puteţi modifica sau scrie de la zero fişierele-script pentru a face anumite aplicaţii accesibile cu Jaws. Mai mult, pot fi realizate scripturi care să îndeplinească, să facă în locul dumneavoastră multe din operaţiile zilnice, precum scrierea instant a semnăturii în E-mail, la o simplă combinaţie de taste.
Pe scurt, crearea de scripturi nu are limite, decât cele cauzate de imaginaţia şi creativitatea mai mult sau mai puţin dezvoltată a celui care le realizează.
Prima întrebare care ar trebui să vină în mintea celui care citeşte această introducere ar fi: „Trebuie să am cunoştinţe anterioare de programare?” Răspunsul este: „Nu, nu e neapărat, deşi ar fi mult mai uşor. Mulţi dintre dezvoltatorii de scripturi au învăţat ca prim limbaj DE PROGRAMARE chiar Jaws Scripting-ul.”.
CE SUNT SCRIPTURILE?
Puteţi considera scripturile ca fiind mici programe care constau în şiruri de paşi individuali care îl ghidează pe Jaws să efectueze diferite acţiuni.
Până la un punct, scripturile pot fi considerate ca mai multe comenzi transmise Jaws ului la o singură apăsare a unei combinaţii de taste.
În cele ce urmează va fi un mic exemplu pentru a înţelege ce ar putea însemna un script.
Dumneavoastră pentru a citi al treilea rând de pe ecran cu Jaws cursor faceţi următorii paşi:
• Jaws Cursor (pentru a activa cursorul Jaws),
• Route Jaws to PC (pentru a fi sigur că Jaws Cursor se află în fereastra curentă),
• Page-Up (pentru a muta cursorul Jaws pe primul rând al ecranului),
• Săgeată în jos de două ori (pentru a ajunge pe al treilea rând al ecranului),
• Insert + săgeată în sus (pentru a citi rândul curent, adică al treilea de pe ecran),
• Pc Cursor (pentru a reveni la starea iniţială)
Lista de mai sus este o secvenţă de paşi pe care îi faceţi consecutiv, îi transmiteţi Jaws-ului instrucţiuni pas cu pas ca în final acesta să citească al treilea rând al ecranului. Toţi aceşti paşi pot fi conţinuţi într-un script care poate fi acţionat la combinaţia de taste, să zicem, control + F12. Aşadar, dacă în general aveţi nevoie să vi se citească într-o aplicaţie al treilea rând al ecranului, puteţi crea un script care la o anumită combinaţie de taste să efectueze automat toţi paşii prezentaţi mai sus.
Fişierele-script conţin de asemenea funcţii. Precum scripturile, funcţiile sunt secvenţe de paşi, acţiuni care efectuează anumite operaţiuni.
Diferenţa între script şi funcţie este că în cazul funcţiei nu se folosesc combinaţii de taste, ele sunt accesate de către scripturi, acestea din urmă fiind cele acţionate prin combinaţii de taste.
Scripturile şi funcţiile sunt create cu aplicaţia Script Mannager. Se folosesc un set de coduri de programare, formatări, reguli pentru a crea scripturi şi funcţii, toate la un loc compunând fişierul-script.
După ce scripturile şi / sau funcţiile sunt create, fişierul-script este compilat în cod binar, inteligibil pentru maşina de calcul. Imediat după compilare, scripturile pot fi folosite, sunt gata pentru a servi utilizatorul.
Aşadar, fişierele-script conţin mai multe scripturi şi funcţii. Fişierele-script sursă, cele în care se poate citi codul text care este scris de creator, au extensia JSS. O mulţime de astfel de fişiere, fiecare pentru o anume aplicaţie, pot fi găsite în folderul JAWS Shared Settings.
Fişierul-script „default” conţine o mulţime de scripturi şi funcţii valabile indiferent de programul în care lucraţi la un moment dat. Jaws încarcă la pornire fişierul-script „default”, scripturile şi funcţiile existente în acesta fiind valabile pretutindeni.
În acelaşi timp, toate aplicaţiile pot avea fişierul-script specific, creat special pentru utilizarea individuală, particularizată, adaptată la situaţii diferite.
În afară de fişierele-script sursă cu extensia JSS, în momentul compilării cu aplicaţia Script Manager, se creează şi fişierele binare, inteligibile pentru maşina de calcul, fişiere care au extensia JSB.
Pe scurt, Jaws se foloseşte pretutindeni în operarea pe calculator de fişierul „default.jsb”, iar în mod particular, dacă vă aflaţi de exemplu pe aplicaţia Notepad, de fişierul „notepad.jsb”. Aceasta înseamnă că pentru Notepad au fost create scripturi care să îndeplinească anumite acţiuni valabile doar în acest program, iar în acelaşi timp funcţionează şi combinaţia insert + F12, aflarea orei curente, combinaţie care acţionează un script aflat în „default.jsb”, adică valabil oriunde aţi fi în calculator.
Dacă Jaws se foloseşte de fişierele JSB, utilizatorul, creatorul de scripturi se foloseşte de fişierul JSS, în care se vede textul care stă la baza programului. Şi mai pe scurt, fişierul JSB este inteligibil pentru Jaws, pentru maşina de calcul, iar fişierul JSS, care conţine aceleaşi informaţii, este inteligibil pentru utilizatorul uman.
Nota bene:
JSB = Jaws Script Binnary,
JSS = Jaws Script Source.
Pentru realizarea acestui curs folosesc ca sursă de inspiraţie manualul în limba engleză realizat de Freedom Scientific.
INFORMAŢII GENERALE
Când este folosit cu diferite aplicaţii, Jaws for Windows vă oferă diferite informaţii prezente în acestea. Instrucţiunile care îi spun Jaws-ului cum să se comporte sunt conţinute într-un set de fişiere „default”. Aceste fişiere „default” sunt create de Freedom Scientific, vin şi rulează odată cu Jaws. Din păcate, nu toate programele sunt la fel, nu există un standard absolut în ceea ce priveşte comportamentul, afişarea informaţiilor pe ecran etc.. Prin urmare, instrucţiunile care îi spun Jaws-ului cum să se comporte în aceste aplicaţii se găsesc într-un set de fişiere specifice, particularizate pentru fiecare program.
Multe setări, schimbări, ajustări, pentru situaţii obişnuite pot fi efectuate din opţiunile Jaws-ului, precum Verbosity sau Screen Echo. În ciuda acestor posibilităţi, se găsesc întotdeauna situaţii speciale în care Jaws are nevoie de instrucţiuni mult mai avansate, specifice, astfel încât screen-reader-ul să poată naviga corect, să returneze informaţii dorite.
Un fişier-script conţine o serie de scripturi şi funcţii. Scripturile şi funcţiile pot fi considerate mici programe; fiecare script sau funcţie constă în secvenţe de cod care îi spun Jaws-ului cum să se mişte sau ce să spună în diferite ipostaze. Puteţi modifica sau scrie de la zero fişierele-script pentru a face anumite aplicaţii accesibile cu Jaws. Mai mult, pot fi realizate scripturi care să îndeplinească, să facă în locul dumneavoastră multe din operaţiile zilnice, precum scrierea instant a semnăturii în E-mail, la o simplă combinaţie de taste.
Pe scurt, crearea de scripturi nu are limite, decât cele cauzate de imaginaţia şi creativitatea mai mult sau mai puţin dezvoltată a celui care le realizează.
Prima întrebare care ar trebui să vină în mintea celui care citeşte această introducere ar fi: „Trebuie să am cunoştinţe anterioare de programare?” Răspunsul este: „Nu, nu e neapărat, deşi ar fi mult mai uşor. Mulţi dintre dezvoltatorii de scripturi au învăţat ca prim limbaj DE PROGRAMARE chiar Jaws Scripting-ul.”.
CE SUNT SCRIPTURILE?
Puteţi considera scripturile ca fiind mici programe care constau în şiruri de paşi individuali care îl ghidează pe Jaws să efectueze diferite acţiuni.
Până la un punct, scripturile pot fi considerate ca mai multe comenzi transmise Jaws ului la o singură apăsare a unei combinaţii de taste.
În cele ce urmează va fi un mic exemplu pentru a înţelege ce ar putea însemna un script.
Dumneavoastră pentru a citi al treilea rând de pe ecran cu Jaws cursor faceţi următorii paşi:
• Jaws Cursor (pentru a activa cursorul Jaws),
• Route Jaws to PC (pentru a fi sigur că Jaws Cursor se află în fereastra curentă),
• Page-Up (pentru a muta cursorul Jaws pe primul rând al ecranului),
• Săgeată în jos de două ori (pentru a ajunge pe al treilea rând al ecranului),
• Insert + săgeată în sus (pentru a citi rândul curent, adică al treilea de pe ecran),
• Pc Cursor (pentru a reveni la starea iniţială)
Lista de mai sus este o secvenţă de paşi pe care îi faceţi consecutiv, îi transmiteţi Jaws-ului instrucţiuni pas cu pas ca în final acesta să citească al treilea rând al ecranului. Toţi aceşti paşi pot fi conţinuţi într-un script care poate fi acţionat la combinaţia de taste, să zicem, control + F12. Aşadar, dacă în general aveţi nevoie să vi se citească într-o aplicaţie al treilea rând al ecranului, puteţi crea un script care la o anumită combinaţie de taste să efectueze automat toţi paşii prezentaţi mai sus.
Fişierele-script conţin de asemenea funcţii. Precum scripturile, funcţiile sunt secvenţe de paşi, acţiuni care efectuează anumite operaţiuni.
Diferenţa între script şi funcţie este că în cazul funcţiei nu se folosesc combinaţii de taste, ele sunt accesate de către scripturi, acestea din urmă fiind cele acţionate prin combinaţii de taste.
Scripturile şi funcţiile sunt create cu aplicaţia Script Mannager. Se folosesc un set de coduri de programare, formatări, reguli pentru a crea scripturi şi funcţii, toate la un loc compunând fişierul-script.
După ce scripturile şi / sau funcţiile sunt create, fişierul-script este compilat în cod binar, inteligibil pentru maşina de calcul. Imediat după compilare, scripturile pot fi folosite, sunt gata pentru a servi utilizatorul.
Aşadar, fişierele-script conţin mai multe scripturi şi funcţii. Fişierele-script sursă, cele în care se poate citi codul text care este scris de creator, au extensia JSS. O mulţime de astfel de fişiere, fiecare pentru o anume aplicaţie, pot fi găsite în folderul JAWS Shared Settings.
Fişierul-script „default” conţine o mulţime de scripturi şi funcţii valabile indiferent de programul în care lucraţi la un moment dat. Jaws încarcă la pornire fişierul-script „default”, scripturile şi funcţiile existente în acesta fiind valabile pretutindeni.
În acelaşi timp, toate aplicaţiile pot avea fişierul-script specific, creat special pentru utilizarea individuală, particularizată, adaptată la situaţii diferite.
În afară de fişierele-script sursă cu extensia JSS, în momentul compilării cu aplicaţia Script Manager, se creează şi fişierele binare, inteligibile pentru maşina de calcul, fişiere care au extensia JSB.
Pe scurt, Jaws se foloseşte pretutindeni în operarea pe calculator de fişierul „default.jsb”, iar în mod particular, dacă vă aflaţi de exemplu pe aplicaţia Notepad, de fişierul „notepad.jsb”. Aceasta înseamnă că pentru Notepad au fost create scripturi care să îndeplinească anumite acţiuni valabile doar în acest program, iar în acelaşi timp funcţionează şi combinaţia insert + F12, aflarea orei curente, combinaţie care acţionează un script aflat în „default.jsb”, adică valabil oriunde aţi fi în calculator.
Dacă Jaws se foloseşte de fişierele JSB, utilizatorul, creatorul de scripturi se foloseşte de fişierul JSS, în care se vede textul care stă la baza programului. Şi mai pe scurt, fişierul JSB este inteligibil pentru Jaws, pentru maşina de calcul, iar fişierul JSS, care conţine aceleaşi informaţii, este inteligibil pentru utilizatorul uman.
Nota bene:
JSB = Jaws Script Binnary,
JSS = Jaws Script Source.
Pentru realizarea acestui curs folosesc ca sursă de inspiraţie manualul în limba engleză realizat de Freedom Scientific.
Errare humanum est, sed perseverare diabolicum...
In forum linguae Latinae venite! (via est: www.limbalatina.ro)
In forum linguae Latinae venite! (via est: www.limbalatina.ro)
- Manu
- General de divizie
- Mesaje: 4120
- Membru din: 02 Feb 2007, 01:15
- Localitate: Cluj-Napoca
- Contact:
Nu am specificat foarte clar, dar... ar trebui si raspunsurile la intrebari in acel E-mail de confirmare, astfel neexistand indoieli in ceea ce priveste nivelul. Nu e neaparat sa fie ca la carte, se vede repede daca e ok treaba, pe multi nu ii cunosc si.. nu am cum sa stiu cat Jaws stiu. De exemplu la prima intrebare, ar fi suficient si un raspuns la problema: "Prin ce actiune sunt convins ca Jaws cursorul se afla in fereastra curenta / activa?".
Errare humanum est, sed perseverare diabolicum...
In forum linguae Latinae venite! (via est: www.limbalatina.ro)
In forum linguae Latinae venite! (via est: www.limbalatina.ro)
- Manu
- General de divizie
- Mesaje: 4120
- Membru din: 02 Feb 2007, 01:15
- Localitate: Cluj-Napoca
- Contact:
Am primit, deocamdata sunt sapte inscrisi.
Errare humanum est, sed perseverare diabolicum...
In forum linguae Latinae venite! (via est: www.limbalatina.ro)
In forum linguae Latinae venite! (via est: www.limbalatina.ro)
- Manu
- General de divizie
- Mesaje: 4120
- Membru din: 02 Feb 2007, 01:15
- Localitate: Cluj-Napoca
- Contact:
Anunt si pe aceasta cale ca lista de discutii Jaws Pontes a fost creata, sper ca i-am inclus pe toti, ca nu am omis din greseala pe cineva care a confirmat inscrierea demarata odata cu acest topic.
Pentru ca e mult mai personalizata si cu mult mai multe posibilitati de administrare, lista de discutii este de tip Mailman si este gazduita pe serverul Pontes.
Lista cuprinde in momentul de fata 12 membri, asadar participa la curs 11 persoane.
Pentru ca e mult mai personalizata si cu mult mai multe posibilitati de administrare, lista de discutii este de tip Mailman si este gazduita pe serverul Pontes.
Lista cuprinde in momentul de fata 12 membri, asadar participa la curs 11 persoane.
Errare humanum est, sed perseverare diabolicum...
In forum linguae Latinae venite! (via est: www.limbalatina.ro)
In forum linguae Latinae venite! (via est: www.limbalatina.ro)
- Manu
- General de divizie
- Mesaje: 4120
- Membru din: 02 Feb 2007, 01:15
- Localitate: Cluj-Napoca
- Contact:
Cursul despre Jaws Scripting a inceput, au avut loc pe 30 noiembrie si 7 decembrie primele doua sedinte.
Am apucat sa ne familiarizam cu Script Managerul, cu fisierele editabile si valoarea fiecaruia.
S-a facut distinctia intre script si functie.
S-a vorbit despre tipurile de functii - event, built-in si definite de utilizator.
A fost creat primul script simplu in mai multe feluri folosind functii built-in.
Avand aceste informatii la baza, deja domnul Potra a reusit sa faca un script care sa ii citeasca in careuri de 4 pe 4 sau 5 pe 5 cuvintele pe verticala. Pentru acest lucru se face un script foarte simplu, informatiile din primele doua intalniri fiind suficiente.
Un alt participant, Gelu Roata, a si realizat un script care sa ii dea click cu mouse-ul in rezultatele de la Strong DC printr-o simpla combinatie de taste.
Asadar, poate fi foarte util, uite cum un script poate inlocui ochiul chiar pentru o citire de sus in jos.
Intalnirile pe Skype sunt inregistrate si probabil vor fi disponibile in viitor tuturora.
Am apucat sa ne familiarizam cu Script Managerul, cu fisierele editabile si valoarea fiecaruia.
S-a facut distinctia intre script si functie.
S-a vorbit despre tipurile de functii - event, built-in si definite de utilizator.
A fost creat primul script simplu in mai multe feluri folosind functii built-in.
Avand aceste informatii la baza, deja domnul Potra a reusit sa faca un script care sa ii citeasca in careuri de 4 pe 4 sau 5 pe 5 cuvintele pe verticala. Pentru acest lucru se face un script foarte simplu, informatiile din primele doua intalniri fiind suficiente.
Un alt participant, Gelu Roata, a si realizat un script care sa ii dea click cu mouse-ul in rezultatele de la Strong DC printr-o simpla combinatie de taste.
Asadar, poate fi foarte util, uite cum un script poate inlocui ochiul chiar pentru o citire de sus in jos.
Intalnirile pe Skype sunt inregistrate si probabil vor fi disponibile in viitor tuturora.
Errare humanum est, sed perseverare diabolicum...
In forum linguae Latinae venite! (via est: www.limbalatina.ro)
In forum linguae Latinae venite! (via est: www.limbalatina.ro)
- Manu
- General de divizie
- Mesaje: 4120
- Membru din: 02 Feb 2007, 01:15
- Localitate: Cluj-Napoca
- Contact:
A avut loc si a treia intalnire pe Skype.
Luni, 14 decembrie 2009, am vorbit despre:
Diferenta dintre String si Int (Integer).
Definirea unor variabile de tip String si Int in cadrul unui script.
Modalitati de atribuire de valori variabilelor cu ajutorul expresiei de tip:
Let X = Y,
unde X este un nume oarecare de variabila, iar Y este o valoare atribuita lui X:
fie o valoare absoluta,
fie o valoare rezultata in urma unui calcul de aritmetica simpla,
fie o valoare rezultata in urma modificarii variabilei X, deci o valoare la care se ajunge prin valoarea variabilei insesi, de exemplu: Let X = X + 1,
fie o valoare rezultata in urma unei convertiri din String in Integer sau invers cu ajutorul functiilor StringToInt () sau IntToString ().
Pentru participanti a inceput sa devina interesant, practic de lunia viitoare se pot face mici programele gen:
Combinatie de taste pentru a intreba lungimea bazei unui triunghi si inaltimea, aceste doua valori fiind completate in doua edit-box-uri, iar dupa apasarea enter-ului, rezultatul ariei triunghiului sa apara scris in Notepad.
Luni, 14 decembrie 2009, am vorbit despre:
Diferenta dintre String si Int (Integer).
Definirea unor variabile de tip String si Int in cadrul unui script.
Modalitati de atribuire de valori variabilelor cu ajutorul expresiei de tip:
Let X = Y,
unde X este un nume oarecare de variabila, iar Y este o valoare atribuita lui X:
fie o valoare absoluta,
fie o valoare rezultata in urma unui calcul de aritmetica simpla,
fie o valoare rezultata in urma modificarii variabilei X, deci o valoare la care se ajunge prin valoarea variabilei insesi, de exemplu: Let X = X + 1,
fie o valoare rezultata in urma unei convertiri din String in Integer sau invers cu ajutorul functiilor StringToInt () sau IntToString ().
Pentru participanti a inceput sa devina interesant, practic de lunia viitoare se pot face mici programele gen:
Combinatie de taste pentru a intreba lungimea bazei unui triunghi si inaltimea, aceste doua valori fiind completate in doua edit-box-uri, iar dupa apasarea enter-ului, rezultatul ariei triunghiului sa apara scris in Notepad.
Errare humanum est, sed perseverare diabolicum...
In forum linguae Latinae venite! (via est: www.limbalatina.ro)
In forum linguae Latinae venite! (via est: www.limbalatina.ro)
- Manu
- General de divizie
- Mesaje: 4120
- Membru din: 02 Feb 2007, 01:15
- Localitate: Cluj-Napoca
- Contact:
Intalnirea din 21 decembrie 2009:
Rezumat
In 21 decembrie s-a vorbit despre:
Variabile locale versus variabile globale
Stabilire constante.
Preluare de valori dintr-un edit-box pentru o variabila.
Folosirea ca parametru al unei functi o alta functie cu parametrul ei.
Utilizarea semnului + (plus), pe langa operatia aritmetica clasica, la concatenarea unor stringuri.
Pun aici si tema pentru viitoarea intalnire din 4 ianuarie 2010, sa ramana ca idee pentru cei care vor mai fi interesati in viitor sa invete Jaws Scripting:
A se realiza un mic programel pentru calcularea pretului unor produse care sunt date in euro fara TVA.
Se lucreaza doar cu variabile globale.
Vor fi in total trei scripturi:
Primul pentru preluarea valorii unui euro: "Cati lei este un euro?", lucram mai bine cu lei vechi ca sa nu folosim virgula.
Dupa ce avem valoarea euro ca Integer, definim alt script, doar ca la o combinatie de taste sa stim cat este euro definit de noi. Deci doar un SayString sau SayInteger, este pentru verificare la orice moment.
In fine, scriptul principal care sa intrebe pretul produsului in euro, sa calculeze pretul final in lei plus TVA.
Stringul returnat sintetic si scris in notepad sa arate cam asa:
"Produsul in valoare de x euro fara TVA, costa x lei cu tot cu TVA."
Rezumat
In 21 decembrie s-a vorbit despre:
Variabile locale versus variabile globale
Stabilire constante.
Preluare de valori dintr-un edit-box pentru o variabila.
Folosirea ca parametru al unei functi o alta functie cu parametrul ei.
Utilizarea semnului + (plus), pe langa operatia aritmetica clasica, la concatenarea unor stringuri.
Pun aici si tema pentru viitoarea intalnire din 4 ianuarie 2010, sa ramana ca idee pentru cei care vor mai fi interesati in viitor sa invete Jaws Scripting:
A se realiza un mic programel pentru calcularea pretului unor produse care sunt date in euro fara TVA.
Se lucreaza doar cu variabile globale.
Vor fi in total trei scripturi:
Primul pentru preluarea valorii unui euro: "Cati lei este un euro?", lucram mai bine cu lei vechi ca sa nu folosim virgula.
Dupa ce avem valoarea euro ca Integer, definim alt script, doar ca la o combinatie de taste sa stim cat este euro definit de noi. Deci doar un SayString sau SayInteger, este pentru verificare la orice moment.
In fine, scriptul principal care sa intrebe pretul produsului in euro, sa calculeze pretul final in lei plus TVA.
Stringul returnat sintetic si scris in notepad sa arate cam asa:
"Produsul in valoare de x euro fara TVA, costa x lei cu tot cu TVA."
Errare humanum est, sed perseverare diabolicum...
In forum linguae Latinae venite! (via est: www.limbalatina.ro)
In forum linguae Latinae venite! (via est: www.limbalatina.ro)
- Manu
- General de divizie
- Mesaje: 4120
- Membru din: 02 Feb 2007, 01:15
- Localitate: Cluj-Napoca
- Contact:
A trecut si a cincia intalnire, cea din 4 ianuarie 2010.
Am vorbit despre If si toate modalitatile de folosire, plus operatorii specifici.
Pe scurt, sintaxa If-ului in Jaws Scripting ar fi de tipul:
If "Ceva este adevarat" Then
Se fac anumite actiuni
ElIf "Altceva este adevarat" Then
Se fac alte actiuni
Else
Se fac alte actiuni
EndIf
In traducere logica:
Daca "Ceva este adevarat" Atunci
Se fac anumite actiuni
Ori daca "Altceva este adevarat" Atunci
Se fac alte actiuni
Altfel, in cazul ca nici o afirmatie de mai sus nu este adevarata
Se fac alte actiuni
Sfarsit Daca
Operatori pot fi:
&& (dublu semn de AND comercial) pentru "si", adica:
If "Ceva este adevarat" && "Inca ceva este adevarat in acelasi timp" Then
In traducere:
Daca "Ceva este adevarat" si "Altceva este in acelasi timp adevarat" Atunci
|| (doua bari verticale) pentru "sau", adica
If "Ceva este adevarat" sau "Altceva este adevarat" Then
In traducere:
Daca "Ceva este adevarat" sau "Altceva este adevarat" Atunci:
Cam acestea ar fi pe scurt informatiile care trebuie retinute, in rest sunt tot felul de variatiuni.
Tema intre cursul cinci si sase ar fi:
A se realiza un mic script care la o combinatie de taste sa spuna ora si, in functie de aceasta sa fie invatat Jaws sa salute. Daca e dimineata sa spuna "Buna dimineata!, daca e zi sa spuna "Buna ziua!" etc.
De asemenea, cine are chef, poate sa incerce sa faca la o alta combinatie de taste un script care sa calculeze in functie de ora noastra, ora din New York, adica cu sapte ore in urma.
Cea de-a doua parte a temei sa fie doar in caz de dorinta de lucru. Problema apare aici in momentul cand ora la noi este inainte de 7 dimineata.
Pentru a scoate cu functia SysGetTime () doar ora in format de 24 de ore, trebuie folosit ca parametru "H", deci un H majuscula intre ghilimele.
Amintesc ca pentru minute se foloseste "mm", pentru secunde "ss", acestea din urma nefiind necesare in cazul nostru, doar in caz de rezolvare a celei de-a doua parti a temei ne trebuie minutele pentru a forma ora New York-ului din doua bucati, ore si minute determinate separat.
Am vorbit despre If si toate modalitatile de folosire, plus operatorii specifici.
Pe scurt, sintaxa If-ului in Jaws Scripting ar fi de tipul:
If "Ceva este adevarat" Then
Se fac anumite actiuni
ElIf "Altceva este adevarat" Then
Se fac alte actiuni
Else
Se fac alte actiuni
EndIf
In traducere logica:
Daca "Ceva este adevarat" Atunci
Se fac anumite actiuni
Ori daca "Altceva este adevarat" Atunci
Se fac alte actiuni
Altfel, in cazul ca nici o afirmatie de mai sus nu este adevarata
Se fac alte actiuni
Sfarsit Daca
Operatori pot fi:
&& (dublu semn de AND comercial) pentru "si", adica:
If "Ceva este adevarat" && "Inca ceva este adevarat in acelasi timp" Then
In traducere:
Daca "Ceva este adevarat" si "Altceva este in acelasi timp adevarat" Atunci
|| (doua bari verticale) pentru "sau", adica
If "Ceva este adevarat" sau "Altceva este adevarat" Then
In traducere:
Daca "Ceva este adevarat" sau "Altceva este adevarat" Atunci:
Cam acestea ar fi pe scurt informatiile care trebuie retinute, in rest sunt tot felul de variatiuni.
Tema intre cursul cinci si sase ar fi:
A se realiza un mic script care la o combinatie de taste sa spuna ora si, in functie de aceasta sa fie invatat Jaws sa salute. Daca e dimineata sa spuna "Buna dimineata!, daca e zi sa spuna "Buna ziua!" etc.
De asemenea, cine are chef, poate sa incerce sa faca la o alta combinatie de taste un script care sa calculeze in functie de ora noastra, ora din New York, adica cu sapte ore in urma.
Cea de-a doua parte a temei sa fie doar in caz de dorinta de lucru. Problema apare aici in momentul cand ora la noi este inainte de 7 dimineata.
Pentru a scoate cu functia SysGetTime () doar ora in format de 24 de ore, trebuie folosit ca parametru "H", deci un H majuscula intre ghilimele.
Amintesc ca pentru minute se foloseste "mm", pentru secunde "ss", acestea din urma nefiind necesare in cazul nostru, doar in caz de rezolvare a celei de-a doua parti a temei ne trebuie minutele pentru a forma ora New York-ului din doua bucati, ore si minute determinate separat.
Errare humanum est, sed perseverare diabolicum...
In forum linguae Latinae venite! (via est: www.limbalatina.ro)
In forum linguae Latinae venite! (via est: www.limbalatina.ro)
- Manu
- General de divizie
- Mesaje: 4120
- Membru din: 02 Feb 2007, 01:15
- Localitate: Cluj-Napoca
- Contact:
Pentru ca a doua parte a temei era optionala, pun aici cea mai scurta cale posibila pentru a o rezolva in cele mai putine randuri... dupa cate am gasit eu. Practic fiecare rezolva in stilul lui.
Script OraNewYork ()
Var
Int iOra
Let iOra = StringToInt (SysGetTime ("H"))
If iOra < 7 Then
Let iOra = iOra + 17
Else
Let iOra = iOra - 7
EndIf
SayString ("La New York este ora " + IntToString (iOra) + " si " + SysGetTime ("mm") + " minute")
EndScript
Sper ca din astfel de exemple sa poata invata in viitor si altii care studiaza manualul sau asculta imprimarile care se fac in timpul cursurilor noastre de fiecare luni seara.
Script OraNewYork ()
Var
Int iOra
Let iOra = StringToInt (SysGetTime ("H"))
If iOra < 7 Then
Let iOra = iOra + 17
Else
Let iOra = iOra - 7
EndIf
SayString ("La New York este ora " + IntToString (iOra) + " si " + SysGetTime ("mm") + " minute")
EndScript
Sper ca din astfel de exemple sa poata invata in viitor si altii care studiaza manualul sau asculta imprimarile care se fac in timpul cursurilor noastre de fiecare luni seara.
Errare humanum est, sed perseverare diabolicum...
In forum linguae Latinae venite! (via est: www.limbalatina.ro)
In forum linguae Latinae venite! (via est: www.limbalatina.ro)
- Manu
- General de divizie
- Mesaje: 4120
- Membru din: 02 Feb 2007, 01:15
- Localitate: Cluj-Napoca
- Contact:
A avut loc si cea de-a sasea intalnire pe Skype, ieri seara.
Am vorbit despre functiile definite de utilizator.
Practic putem realiza functii care sa faca diferite actiuni, apoi aceste functii pot fi folosite in cadrul unor scripturi precum functiile built-in.
Pentru a realiza o functie definita, scheletul arata astfel:
Function NumeFunctie ()
EndFunction
Intre cele doua randuri de mai sus pot fi folosite functii built-in, alte functii definite, if-uri etc..
De exemplu daca avem nevoie foarte des de un sir de trei actiuni, sa zicem:
Route Jaws To Pc (pentru a activa cursorul Jaws si a-l aduce in fereastra curenta),
Jaws Top Of File (pentru a merge pe primul rand al ferestrei) si
Say Line (pentru a citi primul rand al ferestrei)
am realiza o functie definita de noi care ar arata astfel:
Function PrimulRand ()
SaveCursor ()
RouteJawsToPc ()
JawsTopOfFile ()
SayLine ()
RestoreCursor ()
EndFunction
In orice script viitor vom putea folosi functia PrimulRand () ca si cum ar fi functie built-in.
De exemplu:
Script CitestePrimulRand ()
PrimulRand ()
EndScript
Tot ieri am vorbit si despre doua functii de tip event.
Este vorba de AutoStartEvent () si AutoFinishEvent ().
Aceste functii nu se folosesc in cadrul unor scripturi, ci tot ce contin se activeaza, se lanseaza la momentul cand focusul ajunge, respectiv paraseste fereastra in cauza.
Ca exemplu:
Function AutoStartEvent ()
SayString ("Salutare lume!")
EndFunction
Function AutoFinishEvent ()
SayString ("La revedere lume!")
EndFunction
Avand cele doua functii in cadrul unui fisier de scripturi, functii care arata precum niste functii definite, de fiecare data cand deschidem programul respectiv sau ajungem pe fereastra acestuia cu Alt + Tab, vom auzi "Salutare lume!"; de asemenea, de fiecare data cand inchidem programul sau parasim fereastra acestuia cu Alt + Tab, vom auzi "La revedere lume!".
Asadar, cele doua functii nu sunt apelate de scripturi, ci se intampla automat cand "event"-ul respectiv are loc.
Am mai trecut in revista cateva functii built-in precum TypeKey () sau Run ("..."), functii cu ajutorul carora se poate face pana si ca in momentul inchiderii unei aplicatii sa se deschida automat o pagina de site.
Exemplu:
Function AutoFinishEvent ()
Run ("www.pontes.ro")
SayString ("Acum se deschide site-ul Pontes")
EndFunction
Avand cele patru linii de mai sus in cadrul unui fisier de scripturi pentru un anume program, in momentul cand inchidem acel program, il minizam sau dam Alt + Tab pentru a parasi fereastra acestuia, se va deschide automat site-ul Pontes.
Cam asta ar fi in rezumat lectia din 11 ianuarie 2010.
Am vorbit despre functiile definite de utilizator.
Practic putem realiza functii care sa faca diferite actiuni, apoi aceste functii pot fi folosite in cadrul unor scripturi precum functiile built-in.
Pentru a realiza o functie definita, scheletul arata astfel:
Function NumeFunctie ()
EndFunction
Intre cele doua randuri de mai sus pot fi folosite functii built-in, alte functii definite, if-uri etc..
De exemplu daca avem nevoie foarte des de un sir de trei actiuni, sa zicem:
Route Jaws To Pc (pentru a activa cursorul Jaws si a-l aduce in fereastra curenta),
Jaws Top Of File (pentru a merge pe primul rand al ferestrei) si
Say Line (pentru a citi primul rand al ferestrei)
am realiza o functie definita de noi care ar arata astfel:
Function PrimulRand ()
SaveCursor ()
RouteJawsToPc ()
JawsTopOfFile ()
SayLine ()
RestoreCursor ()
EndFunction
In orice script viitor vom putea folosi functia PrimulRand () ca si cum ar fi functie built-in.
De exemplu:
Script CitestePrimulRand ()
PrimulRand ()
EndScript
Tot ieri am vorbit si despre doua functii de tip event.
Este vorba de AutoStartEvent () si AutoFinishEvent ().
Aceste functii nu se folosesc in cadrul unor scripturi, ci tot ce contin se activeaza, se lanseaza la momentul cand focusul ajunge, respectiv paraseste fereastra in cauza.
Ca exemplu:
Function AutoStartEvent ()
SayString ("Salutare lume!")
EndFunction
Function AutoFinishEvent ()
SayString ("La revedere lume!")
EndFunction
Avand cele doua functii in cadrul unui fisier de scripturi, functii care arata precum niste functii definite, de fiecare data cand deschidem programul respectiv sau ajungem pe fereastra acestuia cu Alt + Tab, vom auzi "Salutare lume!"; de asemenea, de fiecare data cand inchidem programul sau parasim fereastra acestuia cu Alt + Tab, vom auzi "La revedere lume!".
Asadar, cele doua functii nu sunt apelate de scripturi, ci se intampla automat cand "event"-ul respectiv are loc.
Am mai trecut in revista cateva functii built-in precum TypeKey () sau Run ("..."), functii cu ajutorul carora se poate face pana si ca in momentul inchiderii unei aplicatii sa se deschida automat o pagina de site.
Exemplu:
Function AutoFinishEvent ()
Run ("www.pontes.ro")
SayString ("Acum se deschide site-ul Pontes")
EndFunction
Avand cele patru linii de mai sus in cadrul unui fisier de scripturi pentru un anume program, in momentul cand inchidem acel program, il minizam sau dam Alt + Tab pentru a parasi fereastra acestuia, se va deschide automat site-ul Pontes.
Cam asta ar fi in rezumat lectia din 11 ianuarie 2010.
Errare humanum est, sed perseverare diabolicum...
In forum linguae Latinae venite! (via est: www.limbalatina.ro)
In forum linguae Latinae venite! (via est: www.limbalatina.ro)
- Manu
- General de divizie
- Mesaje: 4120
- Membru din: 02 Feb 2007, 01:15
- Localitate: Cluj-Napoca
- Contact:
Ieri, 18 ianuarie 2010 ne-am intalnit pentru a saptea oara cu Jaws Scriptingul si am vorbit despre While.
Asadar, While, tradus "In timp ce", face ca o actiune sa se intample atata timp cat o conditie este adevarata.
Sintaxa este asemanatoare cu a If-ului, doar ca nu trebuie folosit "Then".
While "Ceva este adevarat"
Se fac anumite actiuni
EndWhile
In traducere libera:
In timp ce "Ceva este adevarat"
Se fac anumite actiuni
Sfarsitul perioadei ("In timp ce"-ului)
Important este ca trebuie tot timpul sa fim siguri ca exista o piedica, astfel incat in cele din urma While-ul sa se termine, riscul este sa mearga la infinit. Daca gresim un While si acesta se va intampla la infinit, calculatorul trebuie in cele din urma restartat.
Am realizat impreuna un cronometru simplu, pun mai jos si codul:
Inceput cod
Script Cronometru ()
Var
String sStop,
Int iStop,
Int iUrca
InputBox ("Pana la cat?", "Limita", sStop)
Let iStop = StringToInt (sStop)
Let iUrca = 0
While iUrca < iStop
Delay (10)
Let iUrca = iUrca + 1
SayInteger (iUrca)
EndWhile
EndScript
Sfarsitul codului
Am aratat ca in timpul While-ului putem folosi chiar si If, astfel am rezolvat ca din 3 in 3 secunde sa se auda si un beep.
Solutia a fost ca la fiecare urcare cu cate o unitate a cronometrului, mai precis a variabilei iUrca, sa se verifice daca numarul este divizibil cu 3, adica daca restul impartirii la 3 da 0, iar daca aceasta conditie era indeplinita, sa se auda un beep.
Deci, plasam in interiorul While-ului, inainte de SayInteger (iUrca), urmatoarele trei randuri:
If iUrca % 3 == 0 Then
Beep ()
EndIf
Tema pentru While ar fi:
A se realiza un cronometru care sa porneasca de la un numar indicat de noi, si sa scada cu cate o secunda pana la 0, aici oprindu-se. De asemenea, dupa ce suntem intrebati de la cat sa inceapa numaratoarea inversa, sa fim intrebati din cate in cate secunde sa faca beep (), acest lucru intamplandu-se apoi.
Anunt si aici ca am deschis un topic in It & C pentru exersare:
Programare in JAWS Scripting, aplicatii practice
Asadar, While, tradus "In timp ce", face ca o actiune sa se intample atata timp cat o conditie este adevarata.
Sintaxa este asemanatoare cu a If-ului, doar ca nu trebuie folosit "Then".
While "Ceva este adevarat"
Se fac anumite actiuni
EndWhile
In traducere libera:
In timp ce "Ceva este adevarat"
Se fac anumite actiuni
Sfarsitul perioadei ("In timp ce"-ului)
Important este ca trebuie tot timpul sa fim siguri ca exista o piedica, astfel incat in cele din urma While-ul sa se termine, riscul este sa mearga la infinit. Daca gresim un While si acesta se va intampla la infinit, calculatorul trebuie in cele din urma restartat.
Am realizat impreuna un cronometru simplu, pun mai jos si codul:
Inceput cod
Script Cronometru ()
Var
String sStop,
Int iStop,
Int iUrca
InputBox ("Pana la cat?", "Limita", sStop)
Let iStop = StringToInt (sStop)
Let iUrca = 0
While iUrca < iStop
Delay (10)
Let iUrca = iUrca + 1
SayInteger (iUrca)
EndWhile
EndScript
Sfarsitul codului
Am aratat ca in timpul While-ului putem folosi chiar si If, astfel am rezolvat ca din 3 in 3 secunde sa se auda si un beep.
Solutia a fost ca la fiecare urcare cu cate o unitate a cronometrului, mai precis a variabilei iUrca, sa se verifice daca numarul este divizibil cu 3, adica daca restul impartirii la 3 da 0, iar daca aceasta conditie era indeplinita, sa se auda un beep.
Deci, plasam in interiorul While-ului, inainte de SayInteger (iUrca), urmatoarele trei randuri:
If iUrca % 3 == 0 Then
Beep ()
EndIf
Tema pentru While ar fi:
A se realiza un cronometru care sa porneasca de la un numar indicat de noi, si sa scada cu cate o secunda pana la 0, aici oprindu-se. De asemenea, dupa ce suntem intrebati de la cat sa inceapa numaratoarea inversa, sa fim intrebati din cate in cate secunde sa faca beep (), acest lucru intamplandu-se apoi.
Anunt si aici ca am deschis un topic in It & C pentru exersare:
Programare in JAWS Scripting, aplicatii practice
Errare humanum est, sed perseverare diabolicum...
In forum linguae Latinae venite! (via est: www.limbalatina.ro)
In forum linguae Latinae venite! (via est: www.limbalatina.ro)
- Manu
- General de divizie
- Mesaje: 4120
- Membru din: 02 Feb 2007, 01:15
- Localitate: Cluj-Napoca
- Contact:
In 1 februarie 2010 ne-am intalnit pentru a opta oara si am vorbit despre diverse modalitati de formatare, aranjare a constantelor, variabilelor, mesajelor.
Pana acum defineam constante si variabile globale la inceputul documentului, de acum le definim intr-un alt document, astfel incat sa nu incarcam cu atat de multa informatie fisierul JSS.
Pentru a crea un fisier in care sa definim constante si variabile globale, trebuie activata caseta de dialog New File, unde alegem fisier de tipul Header, avand extensia JSH (JAWS Script Header).
Putem salva apoi fisierul cu orice denumire, extensia se pune automat.
In acest fisier ne comportam exact ca inainte cand eram la inceputul documentului JSS.
Definim sub forma:
Globals
String sText,
Int iNumar
Const
sFisier = "NumeFisier.txt"
iHoursPerDay = 24
Avand fisierul salvat cu numele "Notepad.JSH", ne referim apoi la el incluzandu-l in fisierul sursa, in cazul de fata in "Notepad.JSS". Unde inainte defineam variabile si constante,a cum nu mai trebuie decat sa scriem:
Include "Notepad.JSH"
Intre ghilimele poate fi orice alta denumire, conditia este sa existe in ENU fisierul cu acel nume.
De asemenea, pentru mesaje se poate crea un fisier separat, dupa acelasi procedeu (New File - Control + N), fisier Messages cu extensia JSM (JAWS Script Messages).
In acest fisier se pot defini convenabil mesaje, avand posibilitatea sa folosim rand nou, orice semn etc.
Structura unui Message File este:
Messages
@Mesaj1
Acesta este mesajul denumit Mesaj1.
@@
@Mesaj2
Acesta este un mesaj cu numele Mesaj2.
@@
EndMessages
Este necesar ca la inceputul si la sfarsitul blocului de mesaje sa existe etichetele de inceput si sfarsit:
Messages
...
EndMessages
Tot ce va vedea compilatorul intre aceste doua etichete vor fi considerate mesaje.
Fiecare mesaj are trei parti:
Denumirea care este precedata de semnul "@" (A rond), ca in exemplul:
@Mesaj1
Apoi textul propriu-zis care nu are limita de caractere, randuri etc.
In final se pune un dublu (A rond) - "@@".
In viitor, in script se poate referi la un mesaj folosind denumirea acestuia fara (A rond) ca si cum ar fi o constanta.
De exemplu functia pe care o foloseam:
SayString (Mesaj1)
va pronunta: "Acesta este mesajul denumit Mesaj1."
Si fisierul JSM trebuie inclus in fisierul JSS sub forma:
Include "xxx.JSM", unde "xxx" poate fi orice nume de fisier care exista in ENU, pe care l-am creat.
De acum nu vom mai folosi functia SayString (), ci alte doua care sunt recomandate de Freedom Scientific:
Say () si SayFormattedMessage ().
Cand avem mesaje simple folosim functia Say (), functie care are inca un parametru fata de SayString (). Acest parametru se refera la tipul de mesaj verbalizat, Output Type. Sunt mai multe tipuri de mesaje pe care le clasificam prin utilizarea unor parametri constante definite in "HJConst.JSH". Cateva dintre aceste constante ar fi: OT_MESSAGE, OT_ERROR, OT_STATUS, OT_HELP etc.
In comportamentul Jaws-ului nu conteaza pe care o folosim, dar la anumite setari, cum ar fi sa nu ni se mai citeasca niciodata mesajele de tip ERROR, toate functiile de tip Say () si SayFormattedMessage () care au in continut parametrul OT_ERROR vor fi ignorate. De asemenea se pot face setari ca diferite dipuri de mesaje sa fie pronuntate cu alta voce, cu alta viteza etc. Practic prin parametrul Ouput Type este vorba mai mult de o clasificare, o sortare.
Asadar nu vom mai folosi SayString (Mesaj1), ci
Say (Mesaj1, OT_MESSAGE)
Pentru ca se insista pe diferente de nivel de utilizator in Jaws, in special pe o impartire Biginner (incepator) pe de o parte si Intermediate/Advanced (indermediar sau avansat) pe de alta, se pot crea mesaje lungi si scurte pentru acelasi eveniment, astfel incat in functie de nivelul utilizatorului sa i se verbalizeze cu mai multe detalii sau mai concis. De exemplu cand apasam Control + C si avem setat Jaws pe Biginner, vom auzi mesajul: "Copied selection to clipboard", iar cand estesetat pe Intermediate sau Advanced, vom auzi doar "Copied".
Daca suntem rabdatori cand facem scripturi, putem crea pentru fiecare eveniment, pentru fiecare actiune in urma sau inainte careia se anunta ceva ca mesajele sa fie in dublu exemplar, unul mai lung pentru incepatori si unul mai concis pentru cei care sunt mai avansati si plictisiti deja de atata vorbarie.
Sa ne imaginam ca in fisierul JSM am creat doua mesaje pentru a ne anunta ora:
@AnuntaOra_L
Acum ora este 16 si 15 minute.
@@
@AnuntaOra_S
Este 16:15.
@@
Dupa cum vedem, primul este mai lung, pentru incepatori, l-am denumit folosind un underline urmat de litera "L" pentru a stii ca este cel pentru Biginner, iar al doilea se numeste la fel, doar ca in final apare un underline urmat de "S" de la scurt (short) si este pentru Intermediate/Advanced.
Acum trebuie sa vedem cum facem ca Jaws sa aleaga pe care il spune in functie de ce setare User Verbosity este la utilizator.
Pentru aceasta avem functia SayFormattedMessage () care necesita in total trei parametri:
Primul parametru este Ouput Type, al doilea este mesajul lung, iar al treilea este mesajul scurt. Aplicand la cazul de fata va rezulta:
SayFormattedMessage (OT_MESSAGE, AnuntaOra_L, AnuntaOra_S)
In viitor, jaws va alege singur pe care dintre cele doua il spune.
Ultima problema despre care am vorbit in 1 februarie 2010 a fost cea a placeholder-elor.
Dupa cum ii spune si numele, "placeholder" tine locul cuiva, mai precis intr-un mesaj tine locul unui cuvant care variaza in functie de procesare. De exemplu: "Numele meu este ...", unde in loc de puncte puncte poate fi orice nume.
In JAWS Scripting se pot crea mesaje care sa contina pana la 9 astfel de placeholders. Pentru a numerota intr-un mesaj aceste placeholders se foloseste semnul procent "%" urmat de numarul aferent.
De exemplu: "Numele meu este %1.". In viitor, dupa ce folosim corespunzatori functiile necesare, in loc de acel %1 se va spune numele. Avantajul unei astfel de formatari a mesajelor este usoara manipulare ulterioara, traducerea facila in alte limbi etc..
Sa ne imaginam urmatorul mesaj definit in fisierul JSM:
@MesajNume
Numele meu este %1, prenumele imi este %2, deci, daca as fi maghiar numele intreg ar fi %1 %2, iar daca sunt roman corect ar fi %2 %1.
@@
In fisierul JSS trebuie doar sa definim cumva ca acel %1 si %2 sa preia valoarea reala de la un moment dat.
Pentru aceasta avem nevoie de o variabila pe care o putem defini in fisierul JSH:
String sMesajFinalNume
Acestei variabile de tip string ii vom atribui ca valoare mesajul cu placeholdere inlocuite cu numele si prenumele gasite in urma unor procesari, deci pe MesajNume care in loc de %1 si %2 sa aiba deja un nume si un prenume.
Vom folosi atunci functia FormatString () care poate avea de la minim doi, pana la zece parametri.
In cazul nostru va avea trei parametri, mai precis:
- mesajul care contine placeholders
- variabila care va inlocui numele
- variabila care va inlocui prenumele.
Considerand ca sNume este o variabila pentru nume si sPrenume o variabila pentru prenume, va rezulta in final:
Let sMesajFinalNume = FormatString (MesajNume, sNume, sPrenume)
Asadar, ceea ce urmeaza dupa primul parametru care reprezinta mesajul din JSM care contine placeholdere, vor fi pe rand stringurile care vor inlocui placeholderele.
Tema pentru aceste probleme ar fi:
1. A se realiza un script simplu care sa minimizeze Notepad-ul, iar in functie de nivelul User Verbosity sa anunte acest eveniment mai explicit sau mai concis, ca de exemplu: "Fereastra Notepad a fost minimizata" sau simplu "Minimizat".
2. A se face ca la o alta combinatie de taste fereastra notepad sa se minimizeze, iar ca anunt sa fie un mesaj cu doua placeholders:
"Notepad sa minimizat la ora H si MM minute.".
La cel din urma nu cream separat mesaje pentru Biginner si Intermediate/Advanced.
Acest curs a fost unul cu ghinion, imprimarile nu au iesit din cauza unor erori la cele doua calculatoare care faceau treaba.
In cele din urma am simulat impreuna cu Grigore din nou tot cursul a doua zi. Cei care fac sau vor face cursul dupa imprimari vor avea totusi aceleasi informatii in format audio.
Pana acum defineam constante si variabile globale la inceputul documentului, de acum le definim intr-un alt document, astfel incat sa nu incarcam cu atat de multa informatie fisierul JSS.
Pentru a crea un fisier in care sa definim constante si variabile globale, trebuie activata caseta de dialog New File, unde alegem fisier de tipul Header, avand extensia JSH (JAWS Script Header).
Putem salva apoi fisierul cu orice denumire, extensia se pune automat.
In acest fisier ne comportam exact ca inainte cand eram la inceputul documentului JSS.
Definim sub forma:
Globals
String sText,
Int iNumar
Const
sFisier = "NumeFisier.txt"
iHoursPerDay = 24
Avand fisierul salvat cu numele "Notepad.JSH", ne referim apoi la el incluzandu-l in fisierul sursa, in cazul de fata in "Notepad.JSS". Unde inainte defineam variabile si constante,a cum nu mai trebuie decat sa scriem:
Include "Notepad.JSH"
Intre ghilimele poate fi orice alta denumire, conditia este sa existe in ENU fisierul cu acel nume.
De asemenea, pentru mesaje se poate crea un fisier separat, dupa acelasi procedeu (New File - Control + N), fisier Messages cu extensia JSM (JAWS Script Messages).
In acest fisier se pot defini convenabil mesaje, avand posibilitatea sa folosim rand nou, orice semn etc.
Structura unui Message File este:
Messages
@Mesaj1
Acesta este mesajul denumit Mesaj1.
@@
@Mesaj2
Acesta este un mesaj cu numele Mesaj2.
@@
EndMessages
Este necesar ca la inceputul si la sfarsitul blocului de mesaje sa existe etichetele de inceput si sfarsit:
Messages
...
EndMessages
Tot ce va vedea compilatorul intre aceste doua etichete vor fi considerate mesaje.
Fiecare mesaj are trei parti:
Denumirea care este precedata de semnul "@" (A rond), ca in exemplul:
@Mesaj1
Apoi textul propriu-zis care nu are limita de caractere, randuri etc.
In final se pune un dublu (A rond) - "@@".
In viitor, in script se poate referi la un mesaj folosind denumirea acestuia fara (A rond) ca si cum ar fi o constanta.
De exemplu functia pe care o foloseam:
SayString (Mesaj1)
va pronunta: "Acesta este mesajul denumit Mesaj1."
Si fisierul JSM trebuie inclus in fisierul JSS sub forma:
Include "xxx.JSM", unde "xxx" poate fi orice nume de fisier care exista in ENU, pe care l-am creat.
De acum nu vom mai folosi functia SayString (), ci alte doua care sunt recomandate de Freedom Scientific:
Say () si SayFormattedMessage ().
Cand avem mesaje simple folosim functia Say (), functie care are inca un parametru fata de SayString (). Acest parametru se refera la tipul de mesaj verbalizat, Output Type. Sunt mai multe tipuri de mesaje pe care le clasificam prin utilizarea unor parametri constante definite in "HJConst.JSH". Cateva dintre aceste constante ar fi: OT_MESSAGE, OT_ERROR, OT_STATUS, OT_HELP etc.
In comportamentul Jaws-ului nu conteaza pe care o folosim, dar la anumite setari, cum ar fi sa nu ni se mai citeasca niciodata mesajele de tip ERROR, toate functiile de tip Say () si SayFormattedMessage () care au in continut parametrul OT_ERROR vor fi ignorate. De asemenea se pot face setari ca diferite dipuri de mesaje sa fie pronuntate cu alta voce, cu alta viteza etc. Practic prin parametrul Ouput Type este vorba mai mult de o clasificare, o sortare.
Asadar nu vom mai folosi SayString (Mesaj1), ci
Say (Mesaj1, OT_MESSAGE)
Pentru ca se insista pe diferente de nivel de utilizator in Jaws, in special pe o impartire Biginner (incepator) pe de o parte si Intermediate/Advanced (indermediar sau avansat) pe de alta, se pot crea mesaje lungi si scurte pentru acelasi eveniment, astfel incat in functie de nivelul utilizatorului sa i se verbalizeze cu mai multe detalii sau mai concis. De exemplu cand apasam Control + C si avem setat Jaws pe Biginner, vom auzi mesajul: "Copied selection to clipboard", iar cand estesetat pe Intermediate sau Advanced, vom auzi doar "Copied".
Daca suntem rabdatori cand facem scripturi, putem crea pentru fiecare eveniment, pentru fiecare actiune in urma sau inainte careia se anunta ceva ca mesajele sa fie in dublu exemplar, unul mai lung pentru incepatori si unul mai concis pentru cei care sunt mai avansati si plictisiti deja de atata vorbarie.
Sa ne imaginam ca in fisierul JSM am creat doua mesaje pentru a ne anunta ora:
@AnuntaOra_L
Acum ora este 16 si 15 minute.
@@
@AnuntaOra_S
Este 16:15.
@@
Dupa cum vedem, primul este mai lung, pentru incepatori, l-am denumit folosind un underline urmat de litera "L" pentru a stii ca este cel pentru Biginner, iar al doilea se numeste la fel, doar ca in final apare un underline urmat de "S" de la scurt (short) si este pentru Intermediate/Advanced.
Acum trebuie sa vedem cum facem ca Jaws sa aleaga pe care il spune in functie de ce setare User Verbosity este la utilizator.
Pentru aceasta avem functia SayFormattedMessage () care necesita in total trei parametri:
Primul parametru este Ouput Type, al doilea este mesajul lung, iar al treilea este mesajul scurt. Aplicand la cazul de fata va rezulta:
SayFormattedMessage (OT_MESSAGE, AnuntaOra_L, AnuntaOra_S)
In viitor, jaws va alege singur pe care dintre cele doua il spune.
Ultima problema despre care am vorbit in 1 februarie 2010 a fost cea a placeholder-elor.
Dupa cum ii spune si numele, "placeholder" tine locul cuiva, mai precis intr-un mesaj tine locul unui cuvant care variaza in functie de procesare. De exemplu: "Numele meu este ...", unde in loc de puncte puncte poate fi orice nume.
In JAWS Scripting se pot crea mesaje care sa contina pana la 9 astfel de placeholders. Pentru a numerota intr-un mesaj aceste placeholders se foloseste semnul procent "%" urmat de numarul aferent.
De exemplu: "Numele meu este %1.". In viitor, dupa ce folosim corespunzatori functiile necesare, in loc de acel %1 se va spune numele. Avantajul unei astfel de formatari a mesajelor este usoara manipulare ulterioara, traducerea facila in alte limbi etc..
Sa ne imaginam urmatorul mesaj definit in fisierul JSM:
@MesajNume
Numele meu este %1, prenumele imi este %2, deci, daca as fi maghiar numele intreg ar fi %1 %2, iar daca sunt roman corect ar fi %2 %1.
@@
In fisierul JSS trebuie doar sa definim cumva ca acel %1 si %2 sa preia valoarea reala de la un moment dat.
Pentru aceasta avem nevoie de o variabila pe care o putem defini in fisierul JSH:
String sMesajFinalNume
Acestei variabile de tip string ii vom atribui ca valoare mesajul cu placeholdere inlocuite cu numele si prenumele gasite in urma unor procesari, deci pe MesajNume care in loc de %1 si %2 sa aiba deja un nume si un prenume.
Vom folosi atunci functia FormatString () care poate avea de la minim doi, pana la zece parametri.
In cazul nostru va avea trei parametri, mai precis:
- mesajul care contine placeholders
- variabila care va inlocui numele
- variabila care va inlocui prenumele.
Considerand ca sNume este o variabila pentru nume si sPrenume o variabila pentru prenume, va rezulta in final:
Let sMesajFinalNume = FormatString (MesajNume, sNume, sPrenume)
Asadar, ceea ce urmeaza dupa primul parametru care reprezinta mesajul din JSM care contine placeholdere, vor fi pe rand stringurile care vor inlocui placeholderele.
Tema pentru aceste probleme ar fi:
1. A se realiza un script simplu care sa minimizeze Notepad-ul, iar in functie de nivelul User Verbosity sa anunte acest eveniment mai explicit sau mai concis, ca de exemplu: "Fereastra Notepad a fost minimizata" sau simplu "Minimizat".
2. A se face ca la o alta combinatie de taste fereastra notepad sa se minimizeze, iar ca anunt sa fie un mesaj cu doua placeholders:
"Notepad sa minimizat la ora H si MM minute.".
La cel din urma nu cream separat mesaje pentru Biginner si Intermediate/Advanced.
Acest curs a fost unul cu ghinion, imprimarile nu au iesit din cauza unor erori la cele doua calculatoare care faceau treaba.
In cele din urma am simulat impreuna cu Grigore din nou tot cursul a doua zi. Cei care fac sau vor face cursul dupa imprimari vor avea totusi aceleasi informatii in format audio.
Ultima oară modificat 03 Apr 2010, 23:08 de către Manu, modificat 1 dată în total.
Errare humanum est, sed perseverare diabolicum...
In forum linguae Latinae venite! (via est: www.limbalatina.ro)
In forum linguae Latinae venite! (via est: www.limbalatina.ro)