annuncio

Comprimi
Ancora nessun annuncio.

[EUO-HELP] persistant variable tracker

Comprimi
X
 
  • Filtro
  • Ora
  • Visualizza
Elimina tutto
nuovi messaggi

  • [EUO-HELP] persistant variable tracker

    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)

    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
    per fare i controtest ho adoperato questo:

    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
    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
    Ultima modifica di fengyr; 30-12-2008, 01:42.
    ____________________________________________________________________

    Il p Fengyr
    ____________________________________________________________________
    : algander#6292

  • #2
    Secondo me non ti hanno risposto perchè lo stesso sistema che utilizza easy uo per aggiornare le variabili non mi sembra poi così efficente, basta notare con che velocità l'orologio scorre o genera numeri randomici... e poi ricordati che non puoi far aggiornare un file di testo ad ogni cambiamento di valori nei registri di sistema,rischi, tra l'acquisizione dei dati e la trascrizione sul disco fisso, di accumulare tempo e di non riuscire a tenere aggiornato il file stesso.Prova invece a creare il file di log ad intervalli di tempo brevi ma regolari, forse potrebbe risolverti un paio di problemi e a far andare lo script meglio.

    _.-+* Kyoko, Draenei Shaman 80 <Out of Control> *+-._

    _.-+* Sayoko, Draenei Shaman 80 on Runetotem EU *+-._

    Commenta


    • #3
      Originariamente inviato da DarkRitual Visualizza il messaggio
      Secondo me non ti hanno risposto perchè lo stesso sistema che utilizza easy uo per aggiornare le variabili non mi sembra poi così efficente, basta notare con che velocità l'orologio scorre o genera numeri randomici... e poi ricordati che non puoi far aggiornare un file di testo ad ogni cambiamento di valori nei registri di sistema,rischi, tra l'acquisizione dei dati e la trascrizione sul disco fisso, di accumulare tempo e di non riuscire a tenere aggiornato il file stesso.Prova invece a creare il file di log ad intervalli di tempo brevi ma regolari, forse potrebbe risolverti un paio di problemi e a far andare lo script meglio.
      Non è così, se vedi bene per scrivere il file di testo non leggo direttamente dai file di registro (sub addEntry e le rispettive setToarray e getArray), ma creo un array a cui aggiungo un nuovo elemento man mano che la variabile cambia e alla fine se richiesto stampa su file... è lo stesso sistema che usa CEO per scrivere le rail. Per i valori non letti credo anch'io che dipenda dall'affidabilità di EUO, ma speravo che qualcuno conoscesse un "trucco" per non perderli.
      Ultima modifica di fengyr; 03-01-2009, 14:42.
      ____________________________________________________________________

      Il p Fengyr
      ____________________________________________________________________
      : algander#6292

      Commenta


      • #4
        Usando easyuo per stampare file in un mio vecchio progettino ho riscontrato parecchi problemi simili ai tuoi, specialmente con trascrizioni complesse. In particolare ci sono problemi con alcuni caratteri e altre robe che non ricordo che a volte impediscono la creazione del file. Ci sarebbe bisogno di un "nuovo" easyuo
        ICQ 222293462


        Commenta

        Sto operando...
        X