Newsgroup: it.comp.lang.visual-basic
Titolo: Analizzatore di XXX sul sito comune !

Ragazzi google non mi aiuta , vado sul SC e non lo trovo ... mi servirebbe
quella cosa fatta da uno del NG che analizza le espressioni , in pratica
dovrei far eseguire a un mio programma uno script personalizzato e volevo
guardarmi questo sorgente gia' fatto ma ... nada , non lo trovo !
come si chiama il file preciso?
mi pare sia di Zanna ?
bha sto sempre + rinco !


http://www.neodatatype.net
-- 
Antonio Cangiano
Webmaster di 
www.visualcsharp.it
free.it.comp.lang.csharp
free.it.comp.lang.vbnet
free.it.comp.lang.aspnet
~Linux è come il crimine, non paga~
--

 
http://www.neodatatype.net
salvato nei preferiti ^_- grazie per la rapidita' !

 mi pare sia di Zanna ?
Ma allora è proprio vero che le firme non le legge nessuno! :(
Ciao
--
' // Initialize the expression evaluator
Engines.Evaluator = CreateObject("
http://www.neodatatype.net
")
' // you can find resources for and from the NG here!
Me.SitoComune = "
http://www.it-lang-vb.net
"

 > quella cosa fatta da uno del NG che analizza le espressioni ,
certe volte mi esprimo peggio di una pianta di ortiche !!!
non intendevo espressioni numeriche ma espressioni stringa , se ne e'
parlato meno di un mese fa , ma non riesco a ripescarlo , in pratica io
scrivo in una casella di testo " if a = 10 then ciao "  e lui lo esegue in
runtime come se fosse codice !
Analizzatoredicodice?

 Ma allora è proprio vero che le firme non le legge nessuno! :(
eh eh chiedo venia !

 runtime come se fosse codice !
Cos'è che vuoi eseguire?
il "ciao" o vuoi avere il risultato di a = 10?
E "ciao" quanto è complesso?


 guardarmi questo sorgente gia' fatto ma ... nada , non lo trovo !
"Parser", si chiama "parser" :-PPP
Comunque, per quello che serve a te, vedrei meglio lo
Script Control; la pagina principale è:
http://www.microsoft.com/italy/scripting/
Bye, G.

 delle limitazioni.
Ops... quali ? Non ho l'EULA sotto mano.
Bye, G.

 
http://www.microsoft.com/italy/scripting/
si ma non riesco a trovare info sulla licenza d'uso... bha spulciamoci pure
sto sito ...

 E "ciao" quanto è complesso?
oddio no .. e' che mi spiego molto male , sto facendo un semplice programma
con un suo linguaggio di scripting , in pratica ho una casella di testo in
cui uno scrive dei comandi e poi io a runtime li faccio eseguire , ho
risolto tutto con una sana passeggiata e un caffettino corretto , a volte e'
l'unico modo per sbloccarsi quando si rimane incastrati tra le righe di
codice !
In pratica analizzo riga per riga e cerco i comandi , poi con una select
faccio eseguire le operazioni , sinceramente la tua Dll ancora la uso ^_-
es :
-Script-
Start
Say Hello world
left click on locate #1
walk 100
end
in pratica analizzo la 1° riga , e passo tutto a una select in cui ho tutta
la mia grammatica , la 2° riga viene eseguita cosi :
Say Hello World
'Say Testo da scrivere
trovo il comando "SAY" e quindi nella secect avro' il mio
case "say"
  appactivate ....
  sendkeys  mid(riga,4) 'mando tutta la riga tranne i primi 4 caratteri (
comando say + spazio )
e cosi via , mi sto divertendo molto , solo credo che avro' molti problemi a
ottimizzarlo ... vedremo !

.
10. SOFTWARE TRANSFER.  The initial user of the Software may make a one-time
permanent transfer of this EULA and Software to another end user, provided
the initial user retains no copies of the Software.  The transfer may not be
an indirect transfer, such as a consignment.  Prior to the transfer, the end
user receiving the Software must agree to all the EULA terms.
11. TERMINATION.  Without prejudice to any other rights, Microsoft may
terminate this EULA if you fail to comply with the terms and conditions of
this EULA. In such event, you must destroy all copies of the Software and
all of its component parts.
12. DISCLAIMER OF WARRANTIES.   TO THE MAXIMUM EXTENT PERMITTED BY
APPLICABLE LAW, MICROSOFT AND ITS SUPPLIERS PROVIDE TO YOU THE  SOFTWARE,
AND SUPPORT SERVICES (IF ANY) AS IS AND WITH ALL FAULTS; AND MICROSOFT AND
ITS SUPPLIERS HEREBY DISCLAIM ALL OTHER WARRANTIES AND CONDITIONS, WHETHER
EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY)
IMPLIED WARRANTIES, DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR
A PARTICULAR PURPOSE, OF RELIABILITY OR AVAILABILITY, OF ACCURACY OR
COMPLETENESS OF RESPONSES, OF RESULTS, OF WORKMANLIKE EFFORT, OF LACK OF
VIRUSES, AND OF LACK OF NEGLIGENCE, ALL WITH REGARD TO THE  SOFTWARE, AND
THE PROVISION OF OR FAILURE TO PROVIDE SUPPORT OR OTHER SERVICES,
INFORMATION, SOFTWARE, AND RELATED CONTENT THROUGH THE  SOFTWARE OR
OTHERWISE ARISING OUT OF THE USE OF THE  SOFTWARE.  ALSO, THERE IS NO
WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, QUIET POSSESSION,
CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT WITH REGARD TO THE
SOFTWARE.
13. EXCLUSION OF INCIDENTAL, CONSEQUENTIAL AND CERTAIN OTHER DAMAGES.  TO
THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT SHALL MICROSOFT
OR ITS SUPPLIERS BE LIABLE FOR ANY SPECIAL, INCIDENTAL, PUNITIVE, INDIRECT,
OR CONSEQUENTIAL DAMAGES WHATSOEVER (INCLUDING, BUT NOT LIMITED TO, DAMAGES
FOR LOSS OF PROFITS OR CONFIDENTIAL OR OTHER INFORMATION, FOR BUSINESS
INTERRUPTION, FOR PERSONAL INJURY, FOR LOSS OF PRIVACY, FOR FAILURE TO MEET
ANY DUTY INCLUDING OF GOOD FAITH OR OF REASONABLE CARE, FOR NEGLIGENCE, AND
FOR ANY OTHER PECUNIARY OR OTHER LOSS WHATSOEVER) ARISING OUT OF OR IN ANY
WAY RELATED TO THE USE OF OR INABILITY TO USE THE PRODUCT, THE PROVISION OF
OR FAILURE TO PROVIDE SUPPORT OR OTHER SERVICES, INFORMATON, SOFTWARE, AND
RELATED CONTENT THROUGH THE PRODUCT OR OTHERWISE ARISING OUT OF THE USE OF
THE PRODUCT, OR OTHERWISE UNDER OR IN CONNECTION WITH ANY PROVISION OF THIS
EULA, EVEN IN THE EVENT OF THE FAULT, TORT (INCLUDING NEGLIGENCE),
MISREPRESENTATION, STRICT LIABILITY, BREACH OF CONTRACT OR BREACH OF
WARRANTY OF MICROSOFT OR ANY SUPPLIER, AND EVEN IF MICROSOFT OR ANY SUPPLIER
HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
14. LIMITATION OF LIABILITY AND REMEDIES.  NOTWITHSTANDING ANY DAMAGES THAT
YOU MIGHT INCUR FOR ANY REASON WHATSOEVER (INCLUDING, WITHOUT LIMITATION,
ALL DAMAGES REFERENCED ABOVE AND ALL DIRECT OR GENERAL DAMAGES IN CONTRACT
OR ANYTHING ELSE), THE ENTIRE LIABILITY OF MICROSOFT AND ANY OF ITS
SUPPLIERS UNDER ANY PROVISION OF THIS SUPPLEMENTAL EULA AND YOUR EXCLUSIVE
REMEDY FOR ALL OF THE FOREGOING SHALL BE LIMITED TO THE GREATER OF THE
ACTUAL DAMAGES YOU INCUR IN REASONABLE RELIANCE ON THE SOFTWARE UP TO THE
AMOUNT ACTUALLY PAID BY YOU FOR THE  SOFTWARE OR U.S.$5.00.  THE FOREGOING
LIMITATIONS, EXCLUSIONS AND DISCLAIMERS SHALL APPLY TO THE MAXIMUM EXTENT
PERMITTED BY APPLICABLE LAW, EVEN IF ANY REMEDY FAILS ITS ESSENTIAL PURPOSE.
15. APPLICABLE LAW.  If you acquired this Software in the United States,
this EULA is governed by the laws of the State of Washington.  If you
acquired this Software in Canada, unless expressly prohibited by local law,
this EULA is governed by the laws in force in the Province of Ontario,
Canada; and, in respect of any dispute which may arise hereunder, you
consent to the jurisdiction of the federal and provincial courts sitting in
Toronto, Ontario. If you acquired this Software in the Eurpean Union,
Iceland, Norway, or Switzerland, then local law applies.  If you acquired
this Software in any other country, then local law may apply.
16. ENTIRE AGREEMENT; SEVERABILITY.  This EULA (including any addendum or
amendment to this EULA which is included with the Software) are the entire
agreement between you and Microsoft relating to the Software and the support
services (if any) and they supersede all prior or contemporaneous oral or
written communications,  proposals and representations with respect to the
Software or any other subject matter covered by this EULA.  To the extent
the terms of any Microsoft policies or programs for support services
conflict with the terms of this EULA, the terms of this EULA shall control.
If any provision of this EULA is held to be void, invalid, unenforceable or
illegal, the other provisions shall continue in full force and effect.

"Gigio2K"
Non e' che si sia (almeno io) capito bene:
sName = InputBox("Please enter the Cost Centre.", "Input")
'loop until sName <> ""
If sName = "10" Then
Shell "C:\WINDOWS\WSCRIPT.EXE C:\WINDOWS\TEMP\10.VBS"
End If
If sName = "15" Then
Shell "C:\WINDOWS\WSCRIPT.EXE C:\WINDOWS\TEMP\15.VBS"
End If
Dove 10 vbs =
set oShell = CreateObject("WScript.Shell")
  MsgBox"ciao"
--
Fosco

 Non e' che si sia (almeno io) capito bene:
si questa e' una implementazione ma la situazione e' + semplice di quanto
crediate !
E' solo un parser (cit) di script ma semplice veramente !

 sto sito ...
Scegli "Controllo Windows Script" e fai "Download": ti apparirà la licenza.
P.S.: il mio "valutatore" :) è più veloce (e parecchio) del M$ Script
Control per la valutazione delle sole espressioni.


 Control per la valutazione delle sole espressioni.
visto che gia' ci sei passato mi daresti una manina per capire i primi
concetti ?
Cioe' il mio Script e' uno script per UOAutopilot , in pratica un tool per
un gioco ,
( lo sto sviluppando per passione ) , adesso io non faccio altro che
ricrearmi la grammatica dello script
e fargli eseguire delle procedure , conosco Tutti i comandi che lo script
accetta , adesso io non sto facendo altro che implementarli , i comandi sono
del tipo :
-cliccare col mouse
-sendkeys a una applicazione
-aspettare
tutto qui , ora lo script e' molto discorsivvo e l'unco modo per analizzarlo
che ho trovato e' quello di fargli leggere i primi 4 caratteri di ogni riga
, riconoscere il comando e implementarlo ( es: testo = Say "Gigio"  select
case left(testo,4)  ... case "Say " appactivate applicaizone  ... sendkeys
mid(testo,4)... )
rispetto all'applicazione ufficiale il mio programma gira + lento,
purtroppo il parser non e' solo sulle prime 4 lettere ma puo' arrivare fino
a un 5 variabili dentro una riga tipo :
 " set Var#1 to color Pos#1 + Random(variabile#2 + 100) "
qui dovrei riconoscere i comandi :
Set e Random e le variabili  Var#1 Pos#1 Var#2 ci riesco facilmente, ma la
mia applicazione resta sempre + lenta dell'originale :(
in pratica alla pressione del tasto di RUN , ho le mie belle righe dello
script in un array di stringhe , le righe sono piccole di una 40ina di
caratteri massimo , ora gia' qui potrei guadagnare qualcosa dichiarando
l'array a dimensione fissa diciamo tipo dim Vettore(200) as string(100) ?
 stringa variabile = 10byte +lunghezza stringa  = da 10 a 110 byte
 stringa fissa  = 100 byte
Hai qualche idea su cosa usare in alternativa al controllo sulla stringa con
left mid e right ?
per scartare le righe vuote uso un semplice if sulla riga cosi :
for i = 1 to 100
  if len(Vettoredistringhe(i)) > 0 then analizza(Vettoredistringhe(i))
Next i
ecco , qui leggo 2 volte la matrice , adesso non so se mi conviene passare
"Vettoredistringhe(i)" a una variabile stringa e usare quella
dim testo as string(100)
for i = 1 to 100
testo = Vettoredistringhe(i)
  if len(testo) > 0 then analizza(testo)
Next i
la sub "analizza" richiama al sui interno altre sub , credo questo
corrisponda a dei semplici Jump e quindi non dovrebbero influire molto sulla
velocita' ...
Cosa mi dici ? Uso il tuo o quello Ms e non vi scoccio ? ^_^;

 concetti ?
Io che di compilatori non ne so mezza (scrivere un valutatore per
espressioni matematiche è tuttosommato "banale" se si conosce il trucco,
compilare un programma è tutta un'altra cosa) ho adottato la soluzione di
una "pre-compilazione".
In pratica quando assegno la stringa contenente lo script mi passo tutte le
righe e le traduco in informazioni più compatte (un type contenente la riga,
l'operazione (long), i parametri ecc...)
L'operazione lo sai facilmente, es. se fai una split è la prima stringa
dell'array.
Poi, sul "Run" faccio un ciclo per ogni istruzione compilata.
Questo sistema ha diversi vantaggi, es. è molto più veloce in fase di run,
elimina tutte le righe vuote risparmiando memoria ed è più semplice da
debuggare.


 una "pre-compilazione".
UAZ , mi sa che oramai comincio a ricevere via telepaticamente , infatti
dopo poco ho creato una matrice con
1° colonna = intero 'che rappresenta la funzione
2° 3° 4° 5° = stringhe(10) 'sono per le variabili
ho guadagnato tantissimo in velocita' togliendo il parser sulle righe , ora
spuntano nuovi problemi ...
Posso ? ... scoccio ? ...
Funzione sendkeys :
se ho 2 righe del tipo :
1 Say "Hello"
2 Say "World"
il sendkeys lo uso male :
per mandare tutte e due le stringhe faccio cosi :
me.show
AppActivate ...
sendkeys hello
me.show
AppActivate ...
sendkeys World
se non faccio il me.show non mi manda "world" finche la mia finestra non
riprende lo stato attivo , se lo faccio la mia finestra sfarfalla creando un
effetto grezzissimo , come faccio a mandare + comandi sendkeys senza lo
sfarfallio ?

 per mandare tutte e due le stringhe faccio cosi :
Adesso ti conviene aprire nuovi thread per domande specifiche.


 Adesso ti conviene aprire nuovi thread per domande specifiche.
lo so ma non voglio disturbare molto il NG !
Grazie infinite per tutto l'aiuto !


Se tutti facessero come te il NG sarebbe deserto ;)


 Se tutti facessero come te il NG sarebbe deserto ;)
bhe visto che siamo in argomento ti spiego il perche' :
Conosco il NG da circa 7 anni , ho provato molte volte a "entrarci" ma mi
sono sempre scontrato con gli "anziani" ! Questo anno, come per magia, sono
riuscito a entrare in questo NG e allora ci tengo a non passare come lo
scassaballe di turno ! ^_^;
E' un atteggiamento da "bambini" ma ci tengo a restare in questo NG !