Jump to content

Recommended Posts

Posted

i have this script that i need a progress bar about

 

#Include <Array.au3>
#Include <Debug.au3>
#include <Constants.au3>

$s = FileRead("book.txt")

Local $w = StringRegExp($s, '(?is)(\b\w+\b)(?!.*\b\1\b)', 3)
_ArrayColInsert($w, 1)
For $i = 0 to UBound($w)-1
   StringRegExpReplace($s, '(?i)\b' & $w[$i][0] & '\b', $w[$i][0])
   $w[$i][1] = @extended

Next
_ArraySort($w, 1, 0, 0, 1)
_DebugArrayDisplay($w, "Title", "|0:1", $ARRAYDISPLAY_NOROW)

; _DebugArrayDisplay($w, "Title", "|0:1")
; _DebugArrayDisplay($w, "Title", "|0:1", $ARRAYDISPLAY_NOROW)

plz help

Posted (edited)

This is how I normally write my progress bars:

 

 

#Include <Array.au3>
#Include <Debug.au3>
#include <Constants.au3>

$s = FileRead("book.txt")

Local $w = StringRegExp($s, '(?is)(\b\w+\b)(?!.*\b\1\b)', 3)
_ArrayColInsert($w, 1)
ProgressOn ( "Starting up", "Loading", "Loading", Default, Default, 18 )
For $i = 0 to UBound($w)-1
    ProgressSet ( ( $i / (UBound ( $w ) - 1) ) * 100, "text to show item being processed", "main text" )
   StringRegExpReplace($s, '(?i)\b' & $w[$i][0] & '\b', $w[$i][0])
   $w[$i][1] = @extended

Next
_ArraySort($w, 1, 0, 0, 1)
_DebugArrayDisplay($w, "Title", "|0:1", $ARRAYDISPLAY_NOROW)
ProgressOff ()
; _DebugArrayDisplay($w, "Title", "|0:1")
; _DebugArrayDisplay($w, "Title", "|0:1", $ARRAYDISPLAY_NOROW)

 

Edited by MattHiggs
Posted

Or is it that you want to the progress bar to calculate progress of the _arraysort?  That would not be possible unless you and modify the Array.au3 udf in the autoit includes folder.

  • Solution
Posted

You could use SplashTextOn to display the text as it's being processed, things like FileRead and StringRegExp could take several seconds to complete before the progress even started.  Basic example:

#Include <Array.au3>
#Include <Debug.au3>
#include <Constants.au3>

Example()

Func Example()
    Local $sTitle = "Example Project"
    Local $sFilePath = @ScriptDir & "\Example.txt"
    SplashTextOn($sTitle, "Reading : " & $sFilePath, 300, 50)
    Local $s = FileRead($sFilePath)
    ControlSetText($sTitle, "", "Static1", "Processing : " & $sFilePath)
    Local $w = StringRegExp($s, '(?is)(\b\w+\b)(?!.*\b\1\b)', 3)
    _ArrayColInsert($w, 1)
    For $i = 0 to UBound($w)-1
        StringRegExpReplace($s, '(?i)\b' & $w[$i][0] & '\b', $w[$i][0])
        $w[$i][1] = @extended
        ControlSetText($sTitle, "", "Static1", $i & " of " & UBound($w)-1)
    Next
    ControlSetText($sTitle, "", "Static1", "Sorting Array")
    _ArraySort($w, 1, 0, 0, 1)
    SplashOff()
    _DebugArrayDisplay($w, "Title", "|0:1", $ARRAYDISPLAY_NOROW)
EndFunc   ;==>Example

 

Posted (edited)

is it possible to add the progress bar and make it work for each array row result counting min/max rows completed

Edited by vinnyMS
Posted
#Include <Array.au3>
#Include <Debug.au3>
#include <Constants.au3>
#include <AutoItConstants.au3>

Example()

Func Example()
$s = FileRead("2.txt")
ProgressOn("word frequency", "Increments every row", "0%", -1, -1, BitOR($DLG_NOTONTOP, $DLG_MOVEABLE))
Local $w = StringRegExp($s, '(?is)(\b\w+\b)(?!.*\b\1\b)', 3)
_ArrayColInsert($w, 1)
For $i = 0 to UBound($w)-1
   StringRegExpReplace($s, '(?i)\b' & $w[$i][0] & '\b', $w[$i][0])
   $w[$i][1] = @extended
   ProgressSet($i, $i & "%")

Next
_ArraySort($w, 1, 0, 0, 1)
_DebugArrayDisplay($w, "Title", "|0:1", $ARRAYDISPLAY_NOROW)
ProgressSet(100, "Done", "Complete")
; _DebugArrayDisplay($w, "Title", "|0:1")
; _DebugArrayDisplay($w, "Title", "|0:1", $ARRAYDISPLAY_NOROW)

ProgressOff()
EndFunc   ;==>Example

i almost got it working with a minor bug in percent value

 

how to fix it?

Screenshot_2.png

Posted (edited)

i tried it again, it works with less content, if there's thousands of words it doesn't show progress it says "not responding" for many minutes

Capture.PNG

 

here's what i have

 

#Include <Array.au3>
#Include <Debug.au3>
#include <Constants.au3>
#include <AutoItConstants.au3>

Example()

Func Example()
$s = FileRead("book.txt")
ProgressOn ( "Word Frequency", "Counting", "Loading", Default, Default, 18 )
Local $w = StringRegExp($s, '(?is)(\b\w+\b)(?!.*\b\1\b)', 3)
_ArrayColInsert($w, 1)
For $i = 0 to UBound($w)-1
   ProgressSet (( $i/(UBound($w) - 1)) * 100, "processed", "word frequency" )
   StringRegExpReplace($s, '(?i)\b' & $w[$i][0] & '\b', $w[$i][0])
   $w[$i][1] = @extended


Next
_ArraySort($w, 1, 0, 0, 1)
_DebugArrayDisplay($w, "Title", "|0:1", $ARRAYDISPLAY_NOROW)
; _DebugArrayDisplay($w, "Title", "|0:1")
; _DebugArrayDisplay($w, "Title", "|0:1", $ARRAYDISPLAY_NOROW)

ProgressOff()
EndFunc   ;==>Example

 

Edited by vinnyMS

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...