Sivakatirswami , inserting a "wait 0 millisecs with messages" just after "calcTime" might help. Sometimes loops are fast enough to get in the way of rendering the screen, and a 'wait' will give the engine enough time to update the screen.

Best,

Mark Smith


On 12 Aug 2009, at 03:49, Sivakatirswami wrote:

I have a little stack that digs some log files.

it works well, but the UI is not updated until the repeat loops and handlers are all finished.

It is as if I had a "lock screen" at the start (which I don't) but it acts like that.

I have a message that is to be inserted into a field and a timer that should update a field on each repeat loop.. But don't see anything until it is finished, only then is the GUI is updated.

perhaps the "Read from file" loop is a blocking call?


global gStart
local tPartials,tRevHits,tCompleted


on mouseUp
  put empty into fld "Time"  # Not happening... blocked
  put empty into fld "output" # Not happening... blocked
put the uDigging of fld "Status" into fld "Status" # Not happening... blocked
set the cursor to busy
  put 0 into tPartials
  put 0 into tRevHits
  put 0 into tCompleted
  put ticks() into gStart
  repeat for each line y in fld "path"
     put y & cr after tOutput
     open file y for read
     put 20000 into tStep
     put 1000 into tChunkSize
     put 1 & cr into tAccessLogFileChunk
     repeat  until tAccessLogFileChunk is empty
        read from file y for tChunkSize lines
        put it into tAccessLogFileChunk
        put processLogs(tAccessLogFileChunk) & cr after tOutput
        calcTime # Not happening... blocked
     end repeat
     close file y
  end repeat
  repeat 5 times
     replace (cr&cr) with cr in tOutput
  end repeat
put "Summary: " & Cr & "Downloaded with Revolution HT Navigator: " & tRevHits & cr into tSummary put "Complete Downloads via HT site: " & (tCompleted - tRevHits) & cr after tSummary
  put tSummary & cr & "_________________" & cr before tOutput
# now all fields are updated:
  calcTime
  put tOutput into fld "output"
  put  the uFinished of fld "Status"  into fld "Status"
end mouseUp

function processLogs tAccessLogFileChunk
  put empty into tFoundLines
  repeat for each line x in tAccessLogFileChunk
     if x contains  fld "SearchString" then
        put x into z
        if z contains "Revolution" then add 1 to tRevHits
        put  ("1.1"&quote&" 200 ") into tCompleteCode
        put  ("1.1"&quote&" 206 ") into tPartialCode
        if z contains tCompleteCode then add 1 to tCompleted
        if z contains tPartialCode then add 1 to tPartials
        put empty into z
        put x & cr after tFoundLInes
     end if
          end repeat
  return tFoundLines
End processLogs

Stack script has:

global gStart

on openStack
  put the uIntro of fld "Status" into fld "Status"
end openStack
on calcTime
  put ticks()-gStart into tTicks
  if tTicks < 60 then
     put tTicks & " ticks" into fld "time"
  else
     put  trunc (tTicks/60) into tSeconds
put trunc(tSeconds/60) & " min. " & ( tSeconds mod 60) & " sec." into fld "time"
  end if
end calcTime






_______________________________________________
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution

_______________________________________________
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to