Programare in Jaws Scripting, aplicatii practice
-
- Locotenent - colonel
- Mesaje: 1063
- Membru din: 15 Mar 2008, 15:50
- Localitate: Cluj-Napoca
-
- Caporal
- Mesaje: 17
- Membru din: 20 Ian 2010, 10:06
- Localitate: Bucuresti
-
- Caporal
- Mesaje: 17
- Membru din: 20 Ian 2010, 10:06
- Localitate: Bucuresti
Din cate am vazut, scripturi pentru Sound forge au fost incluse pana la Jaws 4.51, apoi, eu unul n am mai gasit. O rezolvare ar fi recompilarea scripturilor de la versiunea de ex 4.5 si redenumirea fisierelor cu versiunea curenta de Sound forge de ex: forge80.jsb.
Scripturile pe care le am recompilat eu raspund la comenzile setate celor amintite mai sus.
Scripturile pe care le am recompilat eu raspund la comenzile setate celor amintite mai sus.
-
- Caporal
- Mesaje: 17
- Membru din: 20 Ian 2010, 10:06
- Localitate: Bucuresti
Re: Timpul pozitiei curente in Sound Forge
Inceput codmanu scrie:Provocarea mea este gasirea unei solutii pentru a extrage doar numarul de secunde printr-un alt script care sa vina in completarea celor doua existente.
Script SpuneSecundele()
Var
String sFirstSegment
GetSFCurrentPosition ()
Let sFirstSegment = StringSegment (sLongTime, ",", 1)
Let sSeconds = StringSegment (sFirstSegment, ":", 3)
SayString (sSeconds)
EndScript
Sfarsit cod
Ultima oară modificat 20 Ian 2010, 18:56 de către Grifnas, modificat 1 dată în total.
Grigore Frisan
- Manu
- General de divizie
- Mesaje: 4120
- Membru din: 02 Feb 2007, 01:15
- Localitate: Cluj-Napoca
- Contact:
Da, asta ar tine daca nu ar mai fi si orele si minutele inainte de secunde.
Deci cu StringSegment (sLongTime, ",", 1) se extrage un "00:00:00" daca ne aflam chiar la inceputul fisierului.
Deci, mai trebuie ceva variabila intermediara pentru a aplica apoi din nou StringSegment (), ori incercat cu StringSegment in StringSegment... sa vedem...
In legatura cu preluarea scripturilor din JAWS 4.5.1 pentru Sound Forge... e putin mai delicata treaba, mi se pare ca erau pentru versiunea 5 a programului si... banuiesc ca multe s-au mai schimbat in timp. Eventual le vom adapta la noile cerinte sau ne putem inspira de acolo in gasirea lucrurilor care trebuie accesibilizate.
Deci cu StringSegment (sLongTime, ",", 1) se extrage un "00:00:00" daca ne aflam chiar la inceputul fisierului.
Deci, mai trebuie ceva variabila intermediara pentru a aplica apoi din nou StringSegment (), ori incercat cu StringSegment in StringSegment... sa vedem...
In legatura cu preluarea scripturilor din JAWS 4.5.1 pentru Sound Forge... e putin mai delicata treaba, mi se pare ca erau pentru versiunea 5 a programului si... banuiesc ca multe s-au mai schimbat in timp. Eventual le vom adapta la noile cerinte sau ne putem inspira de acolo in gasirea lucrurilor care trebuie accesibilizate.
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)
Da, ai dreptate, numai ca eu, netestand script-ul si entuziasmat fiind de o rezolvare facila a chestiunii/provocarii lansate... intelegi, sper... m-am cam pripit, desigur, dar...manu scrie:Deci cu StringSegment (sLongTime, ",", 1) se extrage un "00:00:00" daca ne aflam chiar la inceputul fisierului.
[...]StringSegment in StringSegment...
Cred ca, intr-adevar, solutia propusa de tine cu "StringSegment" in "StringSegment" este viabila si merita a fi incercata...
Grigore Frisan
- Manu
- General de divizie
- Mesaje: 4120
- Membru din: 02 Feb 2007, 01:15
- Localitate: Cluj-Napoca
- Contact:
Daca nu pune nimeni solutia, scriu eu aici pentru secunde:
Inceput cod
Script SpuneSecunde ()
GetSFCurrentPosition ()
Let sSeconds = StringSegment (StringSegment (sLongTime, ",", 1), ":", 3)
SayString (sSeconds)
EndScript
Sfarsit cod
Se poate rezolva chiar si fara variabila sSeconds, punand cele doua StringSegment in SayString:
SayString (StringSegment (StringSegment (sLongTime, ",", 1), ":", 3))
Cine are chef, pe acelasi sablon poate face acum pentru ore si minute... Asa se vede clar daca s-a inteles si ramane o forma pentru cei care vor adopta in viitor aceasta solutie pentru timp.
Pentru siguranta ar fi bun un Escape si la inceputul functiei GetSFCurrentPosition (), asta pentru a nu da cineva comanda cand deja este activat dialogul Control + G.
Acum m-am gandit ca poate la procesarea cu Sound Forge sunt mai multe lucruri care ar fi utile. De exemplu cineva taie ceva la miime de secunda, apoi mai face ceva miscari, dar ar vrea sa revina in pozitia in care a fost si sa puna ceva. Se poate face script care sa memoreze exact niste puncte clare la miime de secunda.
Inceput cod
Script SpuneSecunde ()
GetSFCurrentPosition ()
Let sSeconds = StringSegment (StringSegment (sLongTime, ",", 1), ":", 3)
SayString (sSeconds)
EndScript
Sfarsit cod
Se poate rezolva chiar si fara variabila sSeconds, punand cele doua StringSegment in SayString:
SayString (StringSegment (StringSegment (sLongTime, ",", 1), ":", 3))
Cine are chef, pe acelasi sablon poate face acum pentru ore si minute... Asa se vede clar daca s-a inteles si ramane o forma pentru cei care vor adopta in viitor aceasta solutie pentru timp.
Pentru siguranta ar fi bun un Escape si la inceputul functiei GetSFCurrentPosition (), asta pentru a nu da cineva comanda cand deja este activat dialogul Control + G.
Acum m-am gandit ca poate la procesarea cu Sound Forge sunt mai multe lucruri care ar fi utile. De exemplu cineva taie ceva la miime de secunda, apoi mai face ceva miscari, dar ar vrea sa revina in pozitia in care a fost si sa puna ceva. Se poate face script care sa memoreze exact niste puncte clare la miime de secunda.
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)
Intr-adevar, maiestrita lucrare!...
Solutia pe care am gasit-o eu, dupa sugestia ta cu o variabila suplimentara, este urmatoarea:
Inceput cod
Script SpuneSecundele()
Var
String sFirstSegment
GetSFCurrentPosition ()
Let sFirstSegment = StringSegment (sLongTime, ",", 1)
Let sSeconds = StringSegment (sFirstSegment, ":", 3)
SayString (sSeconds)
EndScript
Sfarsit cod
Solutia pe care am gasit-o eu, dupa sugestia ta cu o variabila suplimentara, este urmatoarea:
Inceput cod
Script SpuneSecundele()
Var
String sFirstSegment
GetSFCurrentPosition ()
Let sFirstSegment = StringSegment (sLongTime, ",", 1)
Let sSeconds = StringSegment (sFirstSegment, ":", 3)
SayString (sSeconds)
EndScript
Sfarsit cod
Grigore Frisan
- Manu
- General de divizie
- Mesaje: 4120
- Membru din: 02 Feb 2007, 01:15
- Localitate: Cluj-Napoca
- Contact:
Cand spun o variabila intermediara... nici nu e nevoie sa fie creata, ci tot sSeconds sa fie si intermediara, precum in exemplul:
Let sSeconds = StringSegment (sLongTime, ",", 1)
Let sSeconds = StringSegment (sSeconds, ":", 3)
Deci, o modificare de valoare a unei variabile prin ea insasi.
Sunt foarte nastrusnice aceste metamorfoze succesive. Practic uneori se poate ca cu ajutorul unei singure variabile sa se ajunga la niste rezultate in urma unor calcule foarte complexe, asta pentru ca ea se tot modifica pe parcurs prin operatii aplicate ei insesi.
Let sSeconds = StringSegment (sLongTime, ",", 1)
Let sSeconds = StringSegment (sSeconds, ":", 3)
Deci, o modificare de valoare a unei variabile prin ea insasi.
Sunt foarte nastrusnice aceste metamorfoze succesive. Practic uneori se poate ca cu ajutorul unei singure variabile sa se ajunga la niste rezultate in urma unor calcule foarte complexe, asta pentru ca ea se tot modifica pe parcurs prin operatii aplicate ei insesi.
Ultima oară modificat 21 Ian 2010, 01:20 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)
- Manu
- General de divizie
- Mesaje: 4120
- Membru din: 02 Feb 2007, 01:15
- Localitate: Cluj-Napoca
- Contact:
Culoare text si fundal
Daca tot nu am inceput inca sa lucram serios la Pontes Trucker, mai pun un mic scriptulet pentru aflare a culorii textului si a fundalului dintr-un punct oarecare, cel pe care este aflat cursorul PC, JAWS sau Virtual.
Cu aceasta ocazie se mai invata si alte functii.
Cei interesati sa poata afla oricand culoarea textului pe care se afla, indiferent ca sunt pe Messenger sau in Word, nu trebuie decat paste la codul de mai jos in fisierul Default.JSS, apoi atribuita o combinatie de taste cu ajutorul dialogului Control + D. O combinatie mai complexa care sa nu fie nicaieri, de exemplu Control + Shift + Insert + Page-Down.
Inceput cod
Script CuloareCurenta ()
Var
String sCuloare,
Int iCuloare
Let iCuloare = GetColorText ()
Let sCuloare = GetColorName (iCuloare)
SayString ("Culoarea textului este " + sCuloare + ", ")
Let iCuloare = GetColorBackground ()
Let sCuloare = GetColorName (iCuloare)
SayString ("Fundalul este " + sCuloare + ".")
EndScript
Sfarsit cod
Cu aceasta ocazie se mai invata si alte functii.
Cei interesati sa poata afla oricand culoarea textului pe care se afla, indiferent ca sunt pe Messenger sau in Word, nu trebuie decat paste la codul de mai jos in fisierul Default.JSS, apoi atribuita o combinatie de taste cu ajutorul dialogului Control + D. O combinatie mai complexa care sa nu fie nicaieri, de exemplu Control + Shift + Insert + Page-Down.
Inceput cod
Script CuloareCurenta ()
Var
String sCuloare,
Int iCuloare
Let iCuloare = GetColorText ()
Let sCuloare = GetColorName (iCuloare)
SayString ("Culoarea textului este " + sCuloare + ", ")
Let iCuloare = GetColorBackground ()
Let sCuloare = GetColorName (iCuloare)
SayString ("Fundalul este " + sCuloare + ".")
EndScript
Sfarsit cod
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)
Da, inteleg... sunt, intr-adevar, o multitudine de posibilitati...manu scrie:Cand spun o variabila intermediara... nici nu e nevoie sa fie creata, ci tot sSeconds sa fie si intermediara, precum in exemplul:
Let sSeconds = StringSegment (sLongTime, ",", 1)
Let sSeconds = StringSegment (sSeconds, ":", 3)
Deci, o modificare de valoare a unei variabile prin ea insasi.
Sunt foarte nastrusnice aceste metamorfoze succesive. Practic uneori se poate ca cu ajutorul unei singure variabile sa se ajunga la niste rezultate in urma unor calcule foarte complexe, asta pentru ca ea se tot modifica pe parcurs prin operatii aplicate ei insesi.
Totusi, cea mai sintetica dintre variantele prezentate, pana acum, este, de departe cea propusa de tine, intr-un mesaj anterior:
SayString (StringSegment (StringSegment (sLongTime, ",", 1), ":", 3))
Grigore Frisan
Da, acum, dupa ce ai aratat rezolvarea, pentru secunde, e foarte usoara modificarea...Manu scrie:Cine are chef, pe acelasi sablon poate face acum pentru ore si minute... Asa se vede clar daca s-a inteles si ramane o forma pentru cei care vor adopta in viitor aceasta solutie pentru timp.
Sper ca o va arata cineva, chiar aici; unul dintre cursanti "Jaws scripting", colegii mei...
Grigore Frisan
-
- Caporal
- Mesaje: 17
- Membru din: 20 Ian 2010, 10:06
- Localitate: Bucuresti
- Manu
- General de divizie
- Mesaje: 4120
- Membru din: 02 Feb 2007, 01:15
- Localitate: Cluj-Napoca
- Contact:
In stringul alcatuit din trei parti delimitate de ":" (doua puncte), al doilea segment reprezinta minutele, nu al treilea, astfel trebuie:
Let sMinutes = StringSegment (sFirstSegment, ":", 2)
iar pentru ore trebuie 1 la al treilea parametru:
Let sHours = StringSegment (sFirstSegment, ":", 1)
Let sMinutes = StringSegment (sFirstSegment, ":", 2)
iar pentru ore trebuie 1 la al treilea parametru:
Let sHours = StringSegment (sFirstSegment, ":", 1)
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)