Programare in Jaws Scripting, aplicatii practice
- Manu
- General de divizie
- Mesaje: 4120
- Membru din: 02 Feb 2007, 01:15
- Localitate: Cluj-Napoca
- Contact:
Ma refeream atunci la persoane interesate de un astfel de curs din perspectiva profesorului, nu a cursantului...
Cursanti s-ar mai gasi, dar profesori mai greu...
Poate o sa ma mobilizez eu sa fac ceva despre JAWS, lucruri generale, in primul rand setari de baza.
Existau niste cursuri imprimate de Iulian Lesneanu la FCC, le-am ascultat acum multi ani si mi-au clarificat foarte bine anumite lucruri. De asemenea era si o carte citita si audio, Windows explicat pentru nevazatori sau asa ceva.
Daca nu le gasesti, o sa le pun pe undeva si fac link si aici.
Cursanti s-ar mai gasi, dar profesori mai greu...
Poate o sa ma mobilizez eu sa fac ceva despre JAWS, lucruri generale, in primul rand setari de baza.
Existau niste cursuri imprimate de Iulian Lesneanu la FCC, le-am ascultat acum multi ani si mi-au clarificat foarte bine anumite lucruri. De asemenea era si o carte citita si audio, Windows explicat pentru nevazatori sau asa ceva.
Daca nu le gasesti, o sa le pun pe undeva si fac link si aici.
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)
Eu am gasit emisiunea jaws pe net ralizata de tine Manu dar mi-a fost de ajutor mai in limita.Nu am gasit tot ce s-a imprimat pe casete din emisiune.Te rog fa un efort si creeaza un topic sau posteaza in acest topic ceea ce ai spus.M-ar ajuta mult.Cat despre ceea ce ai spus de domnul Iulian Lesneanu....nu am gasit nimic de dansul.A venit o singura data la mine dar dupa aceea nu am mai avut timp sa-l mai chem.
-
- Plutonier
- Mesaje: 110
- Membru din: 10 Iul 2012, 13:39
- Localitate: timisoara
- Contact:
Re: Programare in Jaws Scripting, aplicatii practice
ok dar unde pot gasi pontes truckerManu scrie:Practic sugestia a fost demonstrarea modului de realizare a unui joc. Cum Pontes Casino era deja facut, am zis sa incepem cu Pontes Trucker in mod treptat cu codurile expuse.
- Manu
- General de divizie
- Mesaje: 4120
- Membru din: 02 Feb 2007, 01:15
- Localitate: Cluj-Napoca
- Contact:
Pana la urma acest joc nu a mai fost finalizat.
Sunt cateva coduri, inclusiv un traseu Londra - Bucuresti, dar a ramas cam la acel stadiu. Cauta in mesajele anterioare ale acestui topic si vei gasi tot ce s-a facut la acea vreme.
Sunt cateva coduri, inclusiv un traseu Londra - Bucuresti, dar a ramas cam la acel stadiu. Cauta in mesajele anterioare ale acestui topic si vei gasi tot ce s-a facut la acea vreme.
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)
-
- Plutonier
- Mesaje: 145
- Membru din: 22 Iul 2012, 21:48
- Localitate: Cluj-Napoca
DexOnline 1.10 cu ResearchIt tool
Fisierul LRL_Dexonline.rul
Fisierul LRL_Dexonline.qry
In NotePad sau EdSharp se copiaza primul cod si se salveaza cu numele LRL_Dexonline.rul, dupa care se salveaza urmatoru cod intr-un fisier cu numele LRL_Dexonline.qry.
Cele doua fisiere se pun in folderul RuleSets pe urmatoarea cale:
Start Menu > Programs > Jaws 14.0 > Explore Jaws > Explore my settings > RuleSets
Cu combinatia de taste insert + spacebar, r se deschide Research it dialog si din options setam DexOnline(primary). Apasam ok. In edit se scrie cuvantul dorit si din list view selectam DexOnline si se apasa enter. In doua trei secunde apar definitiile pentru cuvantul dorit.
Fisierul LRL_Dexonline.rul
Cod: Selectaţi tot
[Details]
FriendlyName=DexOnline
Description=Scrieti cuvantul fara diacritice, selectati DexOnline din lista si apasati enter. Cod pentru jaws 14 si jaws 13.
Timeout=15000
Version=1.10
Cod: Selectaţi tot
(: NAMESPACES :)
(: declare default element namespace "http://www.w3.org/1999/xhtml"; :)
(: IMPORTS :)
import module namespace fsi = "http://freedomscientific.com/ResearchItImports" at "ResearchItLibrary.jri";
(: FUNCTIONS :)
declare function local:get-search-term () as xs:string*
{
(: Se afiseaza search term doar daca definitia este gasita :)
let $str := if (count($results/*[name()='p'][*]/*[name()='span'])) then
(normalize-space ( fsi:strip-trailing-punct (lower-case ("|ARG_1...ARG_n|"))))
else ('')
return $str
};
declare function local:definitii ($list as node()*) as node()*
{<ol>
{ let $definitions := for $detail at $count in $list/*
return if (name ($detail) = 'p') then
<li>{fn:substring-before (fsi:output-clean-lines($detail), "| Semnaleaz")}</li>
else ()
return ($definitions)
}
</ol>
};
declare function local:main ($listing as node()*)
{
let $content := local:definitii ($listing)
return if (empty ($content)) then
<p>Definitia nu a fost gasita pentru {$search_term}.</p>
else
<p>{$content}</p>
};
(: VARIABLES :)
declare variable $search-string := encode-for-uri ("|ARG_1...ARG_n|");
declare variable $search_term := fsi:strip-trailing-punct(normalize-space(lower-case ($search-string)));
(: Se acceseaza pagina direct :)
declare variable $URL := concat ('http://dexonline.ro/definitie/', $search_term);
declare variable $doc := xqilla:parse-html(unparsed-text ($URL));
declare variable $results := ($doc
/*[name()='html']/*[name()='body']
/*[name()='div'][@id="Container"]
/*[name()='div'][@id="contentProper"]
/*[name()='div'][@class="txt"]);
(: QUERY BODY :)
(<html>{fsi:add-head ($search_term)}<body>{local:main ($results)}</body></html>)
Cele doua fisiere se pun in folderul RuleSets pe urmatoarea cale:
Start Menu > Programs > Jaws 14.0 > Explore Jaws > Explore my settings > RuleSets
Cu combinatia de taste insert + spacebar, r se deschide Research it dialog si din options setam DexOnline(primary). Apasam ok. In edit se scrie cuvantul dorit si din list view selectam DexOnline si se apasa enter. In doua trei secunde apar definitiile pentru cuvantul dorit.
Grigore
- Manu
- General de divizie
- Mesaje: 4120
- Membru din: 02 Feb 2007, 01:15
- Localitate: Cluj-Napoca
- Contact:
Multumim si felicitari pentru realizarea acestor reguli, functioneaza perfect acum cu Jaws 14.
Am scris un cuvant si au aparut imediat rezultatele sub forma de lista.
Este util inca un mod de accesare DexOnline, si inca unul foarte aproape de utilizatorii de JAWS. Folosim cu totii MaestroDex, dar uneori poate in graba vrem sa nu mai deschidem inca un program.
Am pus un zip pe server cu cele doua fisiere si cu instructiunile intr-un text. E mai usor pentru altii sa copieze doar fisierele la locul potrivit, fara sa se mai chinuie sa le creeze cu Notepad.
Descarcare reguli Jaws Research It pentru DexOnline
DexOnlineJawsResearchIt.zip
Mai jos sunt instructiunile continute in fisierul text din arhiva, fisier care se afla langa cele doua necesare pentru Research It:
Am scris un cuvant si au aparut imediat rezultatele sub forma de lista.
Este util inca un mod de accesare DexOnline, si inca unul foarte aproape de utilizatorii de JAWS. Folosim cu totii MaestroDex, dar uneori poate in graba vrem sa nu mai deschidem inca un program.
Am pus un zip pe server cu cele doua fisiere si cu instructiunile intr-un text. E mai usor pentru altii sa copieze doar fisierele la locul potrivit, fara sa se mai chinuie sa le creeze cu Notepad.
Descarcare reguli Jaws Research It pentru DexOnline
DexOnlineJawsResearchIt.zip
Mai jos sunt instructiunile continute in fisierul text din arhiva, fisier care se afla langa cele doua necesare pentru Research It:
Inca o data multumiri, mai asteptam si alte reguli.Reguli create de BosGrigore.
Versiune 1.1
A se copia cele doua fisiere din folderul in care se afla si acest fisier cu instructiuni.
Numele celor doua fisiere:
LRL_Dexonline.rul
LRL_Dexonline.qry
Se da paste la cele doua fisiere in folderul RuleSets, gasibil pe urmatoarea cale:
Start Menu > Programs > Jaws 14.0 > Explore Jaws > Explore my settings > RuleSets
Pentru utilizare:
Apasand Insert + Space, urmat de un r, se deschide Research it dialog.
In edit se scrie cuvantul dorit si se da un tab.
Din list view-ul pe care ajunge cursorul, selectam DexOnline si se apasa enter.
In doua trei secunde apar definitiile pentru cuvantul dorit.
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)
-
- Plutonier
- Mesaje: 145
- Membru din: 22 Iul 2012, 21:48
- Localitate: Cluj-Napoca
-
- Plutonier
- Mesaje: 145
- Membru din: 22 Iul 2012, 21:48
- Localitate: Cluj-Napoca
TemperaturaPontesInClujNapoca cu ResearchIt tool
Fisierul lrl_TPontes.rul
Cod,
[Details]
FriendlyName=TemperaturaPontesInClujNapoca
Description=Stergeti tot din edit si selectati TemperaturaPontesInClujNapoca din lista. Apasati enter si temperatura in Cluj-Napoca apare in results viewer
Timeout=15000
Version=1.0.0
Sfarsit cod
Fisierul lrl_TPontes.qry
Cod,
(: NAMESPACES
declare default element namespace "http://www.w3.org/1999/xhtml";
(: IMPORTS
import module namespace fsi = "http://freedomscientific.com/ResearchItImports" at "ResearchItLibrary.jri";
(:Function:)
declare function local:main ($listing as node()*) as xs:string
{
let $content := $listing
return if (empty ($content)) then
<p>Verificati pe portal.</p>
else
<p>{fn:substring-before (fsi:output-clean-lines($content), "| Alege localitatea")}</p>
};
(: VARIABLES
declare variable $doc :=xqilla:parse-html(fn:unparsed-text
("http://www.pontes.ro/portal/index.php"));
declare variable $meteo := $doc/html/body
/div[@id="header"]
/p[@align="right"];
(:query body:)
(<html>{local:main($meteo)}</html>)
Sfarsit cod
Cele doua fisiere se pun in folderul Rul Sets.
Cititi si DexOnline cu research it tool postat anterior.
Fisierul lrl_TPontes.rul
Cod,
[Details]
FriendlyName=TemperaturaPontesInClujNapoca
Description=Stergeti tot din edit si selectati TemperaturaPontesInClujNapoca din lista. Apasati enter si temperatura in Cluj-Napoca apare in results viewer
Timeout=15000
Version=1.0.0
Sfarsit cod
Fisierul lrl_TPontes.qry
Cod,
(: NAMESPACES
declare default element namespace "http://www.w3.org/1999/xhtml";
(: IMPORTS
import module namespace fsi = "http://freedomscientific.com/ResearchItImports" at "ResearchItLibrary.jri";
(:Function:)
declare function local:main ($listing as node()*) as xs:string
{
let $content := $listing
return if (empty ($content)) then
<p>Verificati pe portal.</p>
else
<p>{fn:substring-before (fsi:output-clean-lines($content), "| Alege localitatea")}</p>
};
(: VARIABLES
declare variable $doc :=xqilla:parse-html(fn:unparsed-text
("http://www.pontes.ro/portal/index.php"));
declare variable $meteo := $doc/html/body
/div[@id="header"]
/p[@align="right"];
(:query body:)
(<html>{local:main($meteo)}</html>)
Sfarsit cod
Cele doua fisiere se pun in folderul Rul Sets.
Cititi si DexOnline cu research it tool postat anterior.
Grigore
-
- Plutonier
- Mesaje: 145
- Membru din: 22 Iul 2012, 21:48
- Localitate: Cluj-Napoca
Acest cod afiseaza in mod automat evenimentele scrise de fiecare dintre noi in fisierul AgendaMea.ini pe care il vom pune in folderul enu.
Totul se intimpla pe baza datei din pc. Pentru ca evenimentele sa fie spuse automat la deschiderea NotePad de exemplu procedam astfel:
- se deschide NotePad
- cu insert + 0 deschidem NotePad.jss si copieam codul
- se compileaza cu ctrl + s
- la revenire in NotePad se vor auzi evenimentele zilei scrise in AgendaMea.ini
Fisierul AgendaMea.ini se va completa prin editare in NotePad astfel:
[Agenda]
11.09 = Albu Paul
[Agenda1]
Albu Paul = 2003
[Emisiuni]
Monday
Tuesday
Wednesday = Ora 16.00 - A doua sansa - Radio renasterea
Thursday
Friday = Ora 15:30- Oameni ca noi- TVR 1, ora 20:00 - Oameni aproape invizibili - TV H2.0, ora 20:30 - Ochiul interior - Radio Romania actualitati
Saturday
Sunday
[Sarbatori]
08.09 = Nasterea Maici Domnului (Sfanta Maria Mica)
Sfarsit cod
Cum as putea calcula varsta fara sectiunea [Agenda1]? As dori sa fie inclus anul nasterii in sectiunea [Agenda].
Totul se intimpla pe baza datei din pc. Pentru ca evenimentele sa fie spuse automat la deschiderea NotePad de exemplu procedam astfel:
- se deschide NotePad
- cu insert + 0 deschidem NotePad.jss si copieam codul
- se compileaza cu ctrl + s
- la revenire in NotePad se vor auzi evenimentele zilei scrise in AgendaMea.ini
Fisierul AgendaMea.ini se va completa prin editare in NotePad astfel:
[Agenda]
11.09 = Albu Paul
[Agenda1]
Albu Paul = 2003
[Emisiuni]
Monday
Tuesday
Wednesday = Ora 16.00 - A doua sansa - Radio renasterea
Thursday
Friday = Ora 15:30- Oameni ca noi- TVR 1, ora 20:00 - Oameni aproape invizibili - TV H2.0, ora 20:30 - Ochiul interior - Radio Romania actualitati
Saturday
Sunday
[Sarbatori]
08.09 = Nasterea Maici Domnului (Sfanta Maria Mica)
Cod: Selectaţi tot
Globals
string sData,
String sDataNastere,
String sPersoane,
string sZiua,
string sEmisiuneCanal,
string sDataSarbatoare,
string sSarbatoare,
string sAnNastere
Function AutoStartEvent ()
Delay (30)
SpuneOra()
Delay (20)
SayString ("Eveniment")
Delay (10)
SpuneAgenda()
SpuneVarsta ()
Delay (20)
SayString ("Emisiune")
Delay (10)
SpuneEmisiune()
Delay (20)
SayString ("Sarbatoare")
Delay (10)
SpuneSarbatori()
EndFunction
Function SpuneOra ()
Var
string sOra
let sOra = SysGetTime ()
sayString("Este ora" + sOra)
EndFunction
Function SpuneAgenda ()
let sData = SysGetDate ("dd.MM")
let sPersoane = InireadString("Agenda", sData, "Azi nu exista sarbatorit.", "AgendaMea.ini")
SayString(sPersoane)
EndFunction
Function SpuneEmisiune ()
let sZiua = stringSegment (SysGetDate(), ",", 1)
let sEmisiuneCanal = InireadString("Emisiuni", sZiua, "Azi nu exista emisiune.", "AgendaMea.ini")
SayString(sEmisiuneCanal)
EndFunction
Function SpuneSarbatori ()
let sSarbatoare = InireadString("Sarbatori", sData, "Azi nu este sarbatoare.", "AgendaMea.ini")
SayString(sSarbatoare)
EndFunction
Function SpuneVarsta ()
let sAnNastere = IniReadString("Agenda1", sPersoane, "", "AgendaMea.ini")
sayString (sysGetDate("yyyy") - sAnNastere)
EndFunction
Script InterogareAgenda ()
; ctrl + a
InputBox("Scrie data nasterii(ziua.luna)", "Cautare", sDataNastere)
Delay(5)
Let sPersoane=InireadString("Agenda", sDataNastere, "Nu exista in sectiunea agenda", "AgendaMea.ini")
SayString(sPersoane)
SpuneVarsta ()
EndScript
Script InterogareEmisiuni ()
; ctrl + e
InputBox("Scrie ziua cand se transmite emisiunea(ziua-Monday)", "Cautare", sZiua)
Delay(5)
Let sEmisiuneCanal = InireadString("Emisiuni", sZiua, "Nu exista in sectiunea emisiuni", "AgendaMea.ini")
SayString(sEmisiuneCanal)
EndScript
Script InterogareSarbatori ()
; ctrl + s
InputBox("Scrie data sarbatorii(ziua.luna)", "Cautare sarbatoare", sDataSarbatoare)
Delay(5)
Let sSarbatoare = IniReadString("Sarbatori", sDataSarbatoare, "Nu exista in sectiunea sarbatori", "AgendaMea.ini")
SayString(sSarbatoare)
EndScript
Script VerificareAgenda ()
; shift + a
let sPersoane = InireadString("Agenda", sData, "Azi nu exista sarbatorit.", "AgendaMea.ini")
SayString(sPersoane)
SpuneVarsta()
EndScript
Script VerificareEmisiuni ()
; shift + e
let sEmisiuneCanal = InireadString("Emisiuni", sZiua, "Azi nu exista emisiune.", "AgendaMea.ini")
SayString(sEmisiuneCanal)
EndScript
Script VerificareSarbatoari ()
; shift + s
let sSarbatoare = InireadString("Sarbatori", sData, "Azi nu este sarbatoare.", "AgendaMea.ini")
SayString(sSarbatoare)
EndScript
Script SpuneZiua ()
; shift + z
let sZiua = stringSegment (SysGetDate(), ",", 1)
SayString (sZiua)
EndScript
Cum as putea calcula varsta fara sectiunea [Agenda1]? As dori sa fie inclus anul nasterii in sectiunea [Agenda].
Grigore
- Manu
- General de divizie
- Mesaje: 4120
- Membru din: 02 Feb 2007, 01:15
- Localitate: Cluj-Napoca
- Contact:
Pai ar fi trebuit sa contina si anul, la ceea ce e acum inca un punct si anul.
Incerci apoi sa preiei doar anul folosind functia StringSegment().
Aceasta functie imparte un string in bucati in functie de un delimitator, si returneaza segmentul dorit.
Asadar, daca ai prelua pentru Ion Ionescu din INI stringul 26.05.1983, pentru a avea doar acel 1983 scrii:
StringSegment (sData, ".", 3)
acel sData contine stringul de preluat, data si anul nasterii.
StringSegment returneaza string, asa ca trebuie sa il convertesti la int:
String sAn = StringSegment (sData, ".", 3)
Int iAn = StringToInt (sAn)
Pentru a economisi un rand si pentru a nu mai crea sAn daca nu e nevoie si in alt aparte, poti scrie direct:
iAn = StringToInt(StringSegment(sData, ".", 3))
Al treilea parametru e 3 pentru ca e vorba de al treilea segment avand in vedere delimitatorül punct, in JAWS Scripting se numara de la 1, nu de la 0 cum e in majoritatea limbajelor.
Daca nu am inteles bine intrebarea, revin dupa o reformulare.
Incerci apoi sa preiei doar anul folosind functia StringSegment().
Aceasta functie imparte un string in bucati in functie de un delimitator, si returneaza segmentul dorit.
Asadar, daca ai prelua pentru Ion Ionescu din INI stringul 26.05.1983, pentru a avea doar acel 1983 scrii:
StringSegment (sData, ".", 3)
acel sData contine stringul de preluat, data si anul nasterii.
StringSegment returneaza string, asa ca trebuie sa il convertesti la int:
String sAn = StringSegment (sData, ".", 3)
Int iAn = StringToInt (sAn)
Pentru a economisi un rand si pentru a nu mai crea sAn daca nu e nevoie si in alt aparte, poti scrie direct:
iAn = StringToInt(StringSegment(sData, ".", 3))
Al treilea parametru e 3 pentru ca e vorba de al treilea segment avand in vedere delimitatorül punct, in JAWS Scripting se numara de la 1, nu de la 0 cum e in majoritatea limbajelor.
Daca nu am inteles bine intrebarea, revin dupa o reformulare.
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)
-
- Sergent major
- Mesaje: 89
- Membru din: 20 Aug 2009, 23:44
- Localitate: Timisoara
- Contact:
Salutare tuturor!
In Jaws Scripting as avea nevoie de doua functii, si anume:
Vreau sa fac operatiuni cu fisiere, si am nevoie sa stiu daca exista vre-o functie care sa returneze numarul de fisiere dintr-un folder, iar a doua functie de care am nevoie, este o functie prin care sa stiu daca itemul selectat e folder sau fisier.
In Jaws Scripting as avea nevoie de doua functii, si anume:
Vreau sa fac operatiuni cu fisiere, si am nevoie sa stiu daca exista vre-o functie care sa returneze numarul de fisiere dintr-un folder, iar a doua functie de care am nevoie, este o functie prin care sa stiu daca itemul selectat e folder sau fisier.
Renunta la ce nu poti pastra, pentru a castiga ce nu poti pierde!!!
- Manu
- General de divizie
- Mesaje: 4120
- Membru din: 02 Feb 2007, 01:15
- Localitate: Cluj-Napoca
- Contact:
Nu am inteles prima intrebare, cum adica sa citeasca toate caracterele, despre care caractere e vorba.
Nu vad de ce as utiliza NVDA in loc de JAWS.
Eu utilizez NVDA doar atunci cand nu pot utiliza JAWS, adica atunci cand il instalez sau il dezinstalez, ori incerc sa il pornesc daca imi crapa JAWS, asadar pentru mine e un cititor de rezerva.
Nu vad de ce as utiliza NVDA in loc de JAWS.
Eu utilizez NVDA doar atunci cand nu pot utiliza JAWS, adica atunci cand il instalez sau il dezinstalez, ori incerc sa il pornesc daca imi crapa JAWS, asadar pentru mine e un cititor de rezerva.
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)