una notte nel tentativo di fare dei fix a uno script che sto cercando di perfezionare, mi serviva un qualcosa per registrare i cambiamenti di valore dnelle variabili permanenti che uso, pensando fosse lavoro da poco buttai giù questo coso, ma il lavoro fu lungo e tra stanchezza e altro non riuscii a risolvere la faccenda.
lo script come ho descritto dovrebbe:
-leggere il nome dato della variabile (ok)
-registrare ogni variazione della variabile nel registro di sistema (non lo fa sempre
)
-stampare su file il "report" che viene creato mentre la variabile cambia (quasi mai il file viene creato)
per fare i controtest ho adoperato questo:
sapreste dirmi dove e cosa ho sbagliato?
probabilmente per qualche motivo a me ignoto non è proprio possibile fare una cosa del genere... fatemi sapere pls! ho postato anche nel forum di EUO ma non ho avuto risposte.
o forse è meglio se mi arrangio con un linguaggio di programmazione serio? o.o
lo script come ho descritto dovrebbe:
-leggere il nome dato della variabile (ok)
-registrare ogni variazione della variabile nel registro di sistema (non lo fa sempre
)-stampare su file il "report" che viene creato mentre la variabile cambia (quasi mai il file viene creato)
codice:
set %filename trackVar.txt
set %cmd cmd
set #menubutton N/A
gosub genericInputMenu
sub genericInputMenu
menu Clear
menu Window Title Persistant Vars Tester
menu Window Color $00FFB0B0
menu Window Size 412 91
menu Font Transparent #true
menu Font Align Right
menu Font Name MS Sans Serif
menu Font Size 8
menu Font Style
menu Font Color WindowText
menu Font Transparent #false
menu Font Align Left
menu Font BGColor $00FFB0B0
menu Text Instructions 80 8 Put below data you want to check.
menu Text var_name 16 44 var name:
menu Font BGColor Window
menu Edit var_edtbox 80 40 233
menu Font Name @Meiryo
menu Font Size 12
menu Font Style b
menu Font BGColor $00FFC1C1
menu Button start 320 4 77 77 TRACK!
menu Show 421 270
loopmenu:
if #menubutton = closed
stop
if #menubutton = start
{
menu hide
set %isCEO #false
set #menubutton N/A
gosub genericOutput
}
menu get var_edtbox
set %var #menures
goto loopmenu
sub genericOutput
menu Clear
menu Window Color $00FFB0B0
menu Window Size 373 362
menu Font Transparent #true
menu Font Align Right
menu Font Name MS Sans Serif
menu Font Size 8
menu Font Style
menu Font Color WindowText
menu Font Transparent #false
menu Font Align Left
menu Font BGColor $00FFB0B0
menu Text Lblresult 16 8 Current variable ( * , %var ) value:
menu Text TableLabel 16 72 Debugging Table < Entry n° ) Time (HHMMSS) - Value > :
menu Text NoteLbl 16 312 Note: i can save the table on a txt if you stop tracking...
menu Text timer 16 336 Time tracking: %timer
menu Font BGColor Window
if %isCEO = #true
{
gosub getglobalvar %idscript
menu Edit resultEdt 16 32 333 %var
}
else
menu Edit resultEdt 16 32 333 * . %var
menu List Create Table 16 96 333 209
menu Button Stop 140 332 95 25 Stop tracking
menu Show 421 270
set %entry 1
gosub add_entry
set #lpc 5000
refresh:
if #menubutton = closed
stop
if #menubutton = stop
{
set #menubutton = N/A
menu Text NoteLbl 16 312 Note: set the file name before saving! Close the window to stop the script.
menu Edit EdtFilen 240 334 121 %filename
menu Button Write 140 332 95 25 Print in file
_waitBtn:
if #menubutton = write
{
set #lpc 10
menu hide
gosub printTofile
stop
}
if #menubutton = closed
{
set #lpc 10
stop
}
goto _waitBtn
}
set %value * . %var
if %value <> * . %var
{
set %entry %entry + 1
menu Edit resultEdt 16 32 333 * . %var
gosub add_entry
}
goto refresh
stop
;=======================
sub add_entry
set %time #time
str ins %time : 3
set %time #strres
str ins %time : 6
set %time #strres
set %string ) , #spc , %time , #spc , - , #spc , * . %var
gosub setToArray %entry %entry %string
menu List ADD Table %entry , %string
return
;=======ARRAY SUBS======
sub setToArray
set %varname %1
set %varname %varname , b
set %varname1 %varname , %2
set % . %varname1 %3
return
sub getArray
set %varname %1
set %varname %varname , b
set %varname1 %varname , %2
set %return % . %varname1
return
;========================
sub printTofile
set %steptot 3 + %entry ;steptot sono gli step totali + i 3 dell'header del file
set %step 0
set %status Writing , #spc , file , #spc , header
menu Clear
menu Window Size 278 72
menu Font Transparent #true
menu Font Align Right
menu Font size 8
menu Font Color Maroon
menu Font Transparent #false
menu Font Align Left
menu Font BGColor $00FFB0B0
menu Text Progress 7 4 Writing progress status: %status
menu Text StepLbl 92 24 Step: %step / %steptot
menu Shape BackBar 8 48 257 17 3 1 1 Black 7 Teal
menu Show 421 270
str mid #date 3 2 ;formatto #date a una stringa più leggibile
set %date #strres
str right #date 2
set %date %date , / , #strres
str left #date 2
set %date %date , / , #strres
menu get EdtFilen
set %filename #menures
set #menubutton N/A
set %step %step + 1
menu Text Progress 7 4 Writing progress status: %status
gosub setProgressbar
execute %cmd /c echo * Created with Algander's Var tracker on , #spc , %date , #spc , * > %filename
set %step %step + 1
gosub setProgressbar
execute %cmd /c echo Persistant variable: , #spc , %var >> %filename
set %step %step + 1
gosub setProgressbar
execute %cmd /c echo , #spc , index n° ) Time (HH:MM:SS) - Value >> %filename
set %status Writing , #spc , tracked , #spc , variable , #spc , values...
menu Text Progress 7 4 Writing progress status: %status
for %i 1 %entry
{
gosub getArray %i %i
execute %cmd /c echo %1 %return >> %filename
set %step %step + 1
gosub setProgressbar
menu Text StepLbl 92 24 Step: %step / %steptot
}
if %step = %steptot
{
menu clear
menu Font Transparent #true
menu Font Align Right
menu Font size 8
menu Font Color Maroon
menu Font Transparent #true
menu Font Align Left
menu Text Progress 7 4 Writing progress status: finish!
gosub setProgressbar
}
return
sub setProgressBar
set %pBarSize ( ( 266000 * %step ) / %steptot ) / 1000
menu delete ProgressBar
menu Shape progressBar 8 48 %pBarSize 17 3 1 1 Black 7 Maroon
menu Text StepLbl 92 24 Step: %step / %steptot
return
codice:
set *tester 1
loop:
display yesno actual value of tester: *tester $
+ increment?
if #dispres = yes
{
set *tester *tester + 1
goto loop
}
else
stop
goto loop
probabilmente per qualche motivo a me ignoto non è proprio possibile fare una cosa del genere... fatemi sapere pls! ho postato anche nel forum di EUO ma non ho avuto risposte.
o forse è meglio se mi arrangio con un linguaggio di programmazione serio? o.o



: algander#6292


Commenta