Jump to content
rm4453

_ArrayFindAll Not returning Only valid result

Recommended Posts

I have a table I am parsing, to find specific vehicle information. I am unable to get _ArrayFindAll to return the only valid result with my test data.

Below is a sample of the table's HTML:

<td class="textCenter">2010</td>
           <td>TOYOTA</td>
           <td>TACOMA 4X4 DB</td>
           <td></td>
           <td>BLACK</td>
           <td class="textCenter">C</td>
           <td class="textCenter">6</td>
           <td>GAS</td>
           <td class="textCenter">A</td>
           <td class="textCenter">4X4</td>
           <td class="textCenter">Y</td>
           <td>CD</td>
           <td class="textCenter">HT</td>
           <td class="textCenter">C</td>
           <td class="textRight" nowrap="nowrap">80,975</td>
           
           
           <td class="textRight" nowrap="nowrap">$16,800</td>
       </tr>
   
       <tr><!-- 308 -->
           <td class="textCenter">2010</td>
           <td>TOYOTA</td>
           <td>TACOMA 4X4 RG</td>
           <td></td>
           <td>BLACK</td>
           <td class="textCenter">R</td>
           <td class="textCenter">4</td>
           <td>GAS</td>
           <td class="textCenter">5</td>
           <td class="textCenter">4X4</td>
           <td class="textCenter">A</td>
           <td>CD</td>
           <td class="textCenter">HT</td>
           <td class="textCenter">C</td>
           <td class="textRight" nowrap="nowrap">95,224</td>
           
           
           <td class="textRight" nowrap="nowrap">$9,500</td>
       </tr>
   
       <tr><!-- 309 -->
           <td class="textCenter">2011</td>
           <td>BUICK</td>
           <td>REGAL</td>
           <td>CXL RL4</td>
           <td>BLACK</td>
           <td class="textCenter">4</td>
           <td class="textCenter">4</td>
           <td>GAS</td>
           <td class="textCenter">A</td>
           <td class="textCenter"></td>
           <td class="textCenter">A</td>
           <td>CD</td>
           <td class="textCenter">SR</td>
           <td class="textCenter">L</td>
           <td class="textRight" nowrap="nowrap">102,694</td>
           
           
           <td class="textRight" nowrap="nowrap">$5,000</td>
       </tr>
   
       <tr><!-- 310 -->
           <td class="textCenter">2011</td>
           <td>CHEVROLET</td>
           <td>AVALANCH 4X4 CR</td>
           <td>LS</td>
           <td>GRAY</td>
           <td class="textCenter">C</td>
           <td class="textCenter">8</td>
           <td>E</td>
           <td class="textCenter">A</td>
           <td class="textCenter">4X4</td>
           <td class="textCenter">A</td>
           <td>CD</td>
           <td class="textCenter">HT</td>
           <td class="textCenter">C</td>
           <td class="textRight" nowrap="nowrap">64,759</td>
           
           
           <td class="textRight" nowrap="nowrap">$16,300</td>
       </tr>
   
       <tr><!-- 311 -->
           <td class="textCenter">2011</td>
           <td>CHEVROLET</td>
           <td>EQUINOX AWD 4C</td>
           <td>LT W/2LT</td>
           <td>BLACK</td>
           <td class="textCenter">S</td>
           <td class="textCenter">4</td>
           <td>GAS</td>
           <td class="textCenter">A</td>
           <td class="textCenter">AWD</td>
           <td class="textCenter">Y</td>
           <td>CD</td>
           <td class="textCenter">SR</td>
           <td class="textCenter">C</td>
           <td class="textRight" nowrap="nowrap">91,896</td>
           
           
           <td class="textRight" nowrap="nowrap">$4,400</td>
       </tr>
   
       <tr><!-- 312 -->
           <td class="textCenter">2011</td>
           <td>CHEVROLET</td>
           <td>TAHOE 4X4 V8</td>
           <td>LTZ</td>
           <td>WHITE</td>
           <td class="textCenter">S</td>
           <td class="textCenter">8</td>
           <td>C</td>
           <td class="textCenter">A</td>
           <td class="textCenter">4X4</td>
           <td class="textCenter">A</td>
           <td>N</td>
           <td class="textCenter">MR</td>
           <td class="textCenter">L</td>
           <td class="textRight" nowrap="nowrap">126,982</td>
           
           
           <td class="textRight" nowrap="nowrap">$17,800</td>
       </tr>
   
       <tr><!-- 313 -->
           <td class="textCenter">2011</td>
           <td>CHEVROLET</td>
           <td>1500 SLV 4X4 EX</td>
           <td>LT</td>
           <td>GRAY</td>
           <td class="textCenter">X</td>
           <td class="textCenter">8</td>
           <td>GAS</td>
           <td class="textCenter">O</td>
           <td class="textCenter">4X4</td>
           <td class="textCenter">A</td>
           <td>CD</td>
           <td class="textCenter">HT</td>
           <td class="textCenter">C</td>
           <td class="textRight" nowrap="nowrap">60,303</td>
           
           
           <td class="textRight" nowrap="nowrap">$18,100</td>
       </tr>
   
       <tr><!-- 314 -->
           <td class="textCenter">2011</td>
           <td>CHEVROLET</td>
           <td>1500 SLV 4X4 EX</td>
           <td>LT</td>
           <td>SILVER</td>
           <td class="textCenter">X</td>
           <td class="textCenter">8</td>
           <td>E</td>
           <td class="textCenter">O</td>
           <td class="textCenter">4X4</td>
           <td class="textCenter">A</td>
           <td>CD</td>
           <td class="textCenter">HT</td>
           <td class="textCenter">C</td>
           <td class="textRight" nowrap="nowrap">89,403</td>
           
           
           <td class="textRight" nowrap="nowrap">$15,900</td>
       </tr>
   
       <tr><!-- 315 -->
           <td class="textCenter">2011</td>
           <td>CHEVROLET</td>
           <td>1500 SLV 4X4 EX</td>
           <td>LTZ</td>
           <td>BLUE</td>
           <td class="textCenter">X</td>
           <td class="textCenter">8</td>
           <td>E</td>
           <td class="textCenter">A</td>
           <td class="textCenter">4X4</td>
           <td class="textCenter">A</td>
           <td>CD</td>
           <td class="textCenter">HT</td>
           <td class="textCenter">L</td>
           <td class="textRight" nowrap="nowrap">53,087</td>
           
           
           <td class="textRight" nowrap="nowrap">$17,700</td>
       </tr>
   
       <tr><!-- 316 -->
           <td class="textCenter">2011</td>
           <td>CHEVROLET</td>
           <td>3500 CUTAWAY</td>
           <td>WORK VAN</td>
           <td>WHITE</td>
           <td class="textCenter">S</td>
           <td class="textCenter"></td>
           <td></td>
           <td class="textCenter">A</td>
           <td class="textCenter">4X2</td>
           <td class="textCenter"></td>
           <td>N</td>
           <td class="textCenter">HT</td>
           <td class="textCenter">C</td>
           <td class="textRight" nowrap="nowrap">202,477</td>
           
           
           <td class="textRight" nowrap="nowrap">$2,700</td>
       </tr>
   
       <tr><!-- 317 -->
           <td class="textCenter">2011</td>
           <td>CHRYSLER</td>
           <td>TOWN &amp; COUNTRY</td>
           <td>TOURING</td>
           <td>BLACK</td>
           <td class="textCenter">4</td>
           <td class="textCenter">6</td>
           <td>E</td>
           <td class="textCenter">A</td>
           <td class="textCenter">4X2</td>
           <td class="textCenter">A</td>
           <td>CD</td>
           <td class="textCenter">HT</td>
           <td class="textCenter"></td>
           <td class="textRight" nowrap="nowrap">198,541</td>
           
           
           <td class="textRight" nowrap="nowrap">$1,900</td>
       </tr>
   
       <tr><!-- 318 -->
           <td class="textCenter">2011</td>
           <td>DODGE</td>
           <td>DURANGO AWD V6</td>
           <td>CREW</td>
           <td>BLUE</td>
           <td class="textCenter">S</td>
           <td class="textCenter">6</td>
           <td>GAS</td>
           <td class="textCenter">A</td>
           <td class="textCenter">AWD</td>
           <td class="textCenter">A</td>
           <td>CD</td>
           <td class="textCenter">SR</td>
           <td class="textCenter">C</td>
           <td class="textRight" nowrap="nowrap">176,036</td>
           
           
           <td class="textRight" nowrap="nowrap">$2,800</td>
       </tr>
   
       <tr><!-- 319 -->
           <td class="textCenter">2011</td>
           <td>FORD</td>
           <td>FOCUS</td>
           <td>SE</td>
           <td>SILVER</td>
           <td class="textCenter">4</td>
           <td class="textCenter">4</td>
           <td>GAS</td>
           <td class="textCenter">A</td>
           <td class="textCenter"></td>
           <td class="textCenter">Y</td>
           <td>CD</td>
           <td class="textCenter">HT</td>
           <td class="textCenter">C</td>
           <td class="textRight" nowrap="nowrap">101,929</td>
           
           
           <td class="textRight" nowrap="nowrap">$3,100</td>
       </tr>
   
       <tr><!-- 320 -->
           <td class="textCenter">2011</td>
           <td>FORD</td>
           <td>FUSION FWD 4C</td>
           <td>SEL</td>
           <td>WHITE</td>
           <td class="textCenter">4</td>
           <td class="textCenter">4</td>
           <td>GAS</td>
           <td class="textCenter">A</td>
           <td class="textCenter"></td>
           <td class="textCenter">Y</td>
           <td>CD</td>
           <td class="textCenter">SR</td>
           <td class="textCenter">L</td>
           <td class="textRight" nowrap="nowrap">78,290</td>
           
           
           <td class="textRight" nowrap="nowrap">$5,500</td>
       </tr>
   
       <tr><!-- 321 -->
           <td class="textCenter">2011</td>
           <td>FORD</td>
           <td>F150 4X4 CR</td>
           <td>XLT</td>
           <td>BLACK</td>
           <td class="textCenter">C</td>
           <td class="textCenter">8</td>
           <td>GAS</td>
           <td class="textCenter">A</td>
           <td class="textCenter">4X4</td>
           <td class="textCenter">Y</td>
           <td>CD</td>
           <td class="textCenter">HT</td>
           <td class="textCenter">C</td>
           <td class="textRight" nowrap="nowrap">70,909</td>
           
           
           <td class="textRight" nowrap="nowrap">$16,000</td>
       </tr>
   
       <tr><!-- 322 -->
           <td class="textCenter">2011</td>
           <td>FORD</td>
           <td>MUSTANG V6 CPE</td>
           <td>V6 PREMIUM</td>
           <td>BLACK</td>
           <td class="textCenter">2</td>
           <td class="textCenter">6</td>
           <td>GAS</td>
           <td class="textCenter">A</td>
           <td class="textCenter">4X2</td>
           <td class="textCenter">A</td>
           <td>CD</td>
           <td class="textCenter">HT</td>
           <td class="textCenter">L</td>
           <td class="textRight" nowrap="nowrap">92,531</td>
           
           
           <td class="textRight" nowrap="nowrap">$2,700</td>
       </tr>
   
       <tr><!-- 323 -->
           <td class="textCenter">2011</td>
           <td>GMC</td>
           <td>ACADIA FWD</td>
           <td>SLE</td>
           <td>RED</td>
           <td class="textCenter">4</td>
           <td class="textCenter">6</td>
           <td>GAS</td>
           <td class="textCenter">A</td>
           <td class="textCenter"></td>
           <td class="textCenter">A</td>
           <td>CD</td>
           <td class="textCenter">HT</td>
           <td class="textCenter">C</td>
           <td class="textRight" nowrap="nowrap">79,199</td>
           
           
           <td class="textRight" nowrap="nowrap">$10,700</td>

A picture of the table test data is attached here:

TableSample.PNG

Here is the _query function, and all other relevant code that I can share.

 

Func _query($aSel, $aUrls)
    $oIE = _login()

    If $oIE = "Return" Then
        Return
    EndIf

    $j = 0
    While $j < UBound($aSel) - 1

        $i = 1

        $aucID ;Unable To Share What This Is Other Than Var Name.

        _IENavigate($oIE, "Something" & $aucID[0] & "Something")

        _IELoadWait($oIE, 100, 2000)
        $oObj = _IETableGetCollection($oIE, 3)
        $cars = _IETableWriteToArray_ProgressBar($oObj, True, "Processing Requested Information!") ;<---- Modified Version See Post For It: https://www.autoitscript.com/forum/topic/195335-solved-how-to-add-a-progress-bar-to-_ietablewritetoarray/?tab=comments#comment-1400699

        $carsYear = _filter($cars, 0, 0, GUICtrlRead($year))
        $carsMake = _filter($carsYear, 0, 1, GUICtrlRead($make))
        Global $carsModel = _filter($carsMake, 0, 2, GUICtrlRead($model))

        $i = 0
        $engine = GUICtrlRead($engine)

        If $engine <> "" Then

            While $i < StringLen($engine)

                $carsEngine = _filter($carsModel, 0, 6 + $i, StringLeft($engine, 1))

                ;_ArrayDisplay($carsModel, "Cars Model Before Array Delete")

                $x = 1
                While $x <= UBound($carsModel)

                    _ArrayDelete($carsModel, $x)
                    $x += 1

                WEnd

                ;_ArrayDisplay($carsModel, "Cars Model After Array Delete")

                ;_ArrayConcatenate($carsModel, $carsEngine)

                ;_ArrayDisplay($carsModel, "Cars Model After Concatenate")

                $engine = StringTrimLeft($engine, 1)
                $i += 1

            WEnd

        Else

            Dim $carsEngine[1][16]

        EndIf

        _ArrayConcatenate($carsEngine, $carsModel)
        _ArrayDisplay($carsEngine, "Cars Engine")

        Dim $carsDriveTrain[1][16]
        Dim $carsDriveTrain2[1][16]
        $driveTrainVal = GUICtrlRead($driveTrain)
        If $driveTrainVal = "4x4" Or $driveTrainVal = "awd" Then

            $carsDriveTrain = _filter($carsEngine, 0, 9, "4")
            $carsDriveTrain2 = _filter($carsEngine, 0, 9, "a")
;~          _ArrayDisplay($carsDriveTrain, "Drive Train Before")
;~          If @error Then
;~              MsgBox("", "", "Cars Drive Train Error: " & @error)
;~          EndIf
;~          _ArrayDisplay($carsDriveTrain2, "Drive Train2 Before")
;~          If @error Then
;~              MsgBox("", "", "Cars Drive Train 2 Error: " & @error)
;~          EndIf
            _ArrayConcatenate($carsDriveTrain, $carsDriveTrain2)

            _ArrayDisplay($carsDriveTrain, "Drive Train After Concat")

        ElseIf $driveTrainVal = "" Then

            _ArrayConcatenate($carsDriveTrain, $carsEngine)

        Else

            $carsDriveTrain = _filter($carsEngine, 0, 9, $driveTrain)
        EndIf


        Dim $carsOdom[1][16]
        $min = GUICtrlRead($odomMin)
        $max = GUICtrlRead($odomMax)
        For $i = 0 To UBound($carsDriveTrain) - 1

            If $carsDriveTrain[$i][14] > $min And $carsDriveTrain[$i][14] < $max Then

                _ArrayAdd($carsOdom, $carsDriveTrain[$i])
                MsgBox("", "", "ADDED!")

            EndIf

        Next

        _ArrayDisplay($carsOdom, "Cars Odom")

        $j += 1
    WEnd

    _IEQuit($oIE)
EndFunc   ;==>_query

Func _filter($tofilter, $xpos1, $ypos1, $str)


;~  If UBound($tofilter, 1) <= 1 Then

;~      $endx = 0

;~  Else

;~      $endx = UBound($tofilter, 1) - 1

;~  EndIf

;~  $cars = _ArrayFindAll($tofilter, $str, $tofilter[$xpos1][$ypos1], $tofilter[$endx][$ypos1], 0, 1, $ypos1, False)

    $cars = _ArrayFindAll($tofilter, $str, Default, Default, 0, 1, $ypos1)

    Dim $carsFiltered[1][16] = [["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p"]]
    ;_ArrayDisplay($carsFiltered)

    $i = 0

    $uBound = UBound($cars) - 1

    While $i < $uBound

        $filtered = _ArrayExtract($tofilter, $cars[$i], $cars[$i], 0, 15)
        ;_ArrayDisplay($filtered, "_filter Array of Filtered")
        _ArrayConcatenate($carsFiltered, $filtered)

        $i += 1

    WEnd

    _ArrayDelete($carsFiltered, 0)

    Return $carsFiltered

EndFunc   ;==>_filter

 

If you know of a more efficient way of doing this please let me know would be more than happy to chew down my inefficiency while learning! (It's like my grandpa used to say, "The only criticism I can't use is that which is not given to me.")

 

The Item an I am using to test the filter is:

image.png.e5de862ecef512c1bdc241dfd794b294.png

 

Edited by rm4453
Forgot To Include Result Used For Filter

Share this post


Link to post
Share on other sites

Please attach resulting array from

$cars = _IETableWriteToArray_ProgressBar($oObj, True, "Processing Requested Information!") ;

as a txt file and specify which value is var:

$engine = GUICtrlRead($engine)

so i and maybe someother's too can have a short look for a quick solution. But as i see are you deleting from begin to end in the  array. This is no good idea, try to do this from end to begin and it should be the solution.

Share this post


Link to post
Share on other sites

@AutoBert Sorry forgot to include the data, try cache refreshing (CTRL+SHIFT+R), as it should load the if not most data requested. (The table as you see it is the resulting array, aka the HTML attached is the table before it is ran through that)

Edited by rm4453

Share this post


Link to post
Share on other sites
18 minutes ago, rm4453 said:

$engine = GUICtrlRead($engine)

This line is rewriting the contents of your $engine variable. Previously, by my guess, the variable held the Control ID of the input box, now it contains the contents of that box, and you have no way to get the contents of it again because you cleared the reference to it.


If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
How to ask questions the smart way!

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.  -  ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.  -  Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.  -  _FileGetProperty - Retrieve the properties of a file  -  SciTE Toolbar - A toolbar demo for use with the SciTE editor  -  GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.  -   Latin Square password generator

Share this post


Link to post
Share on other sites
1 minute ago, BrewManNH said:

This line is rewriting the contents of your $engine variable. Previously, by my guess, the variable held the Control ID of the input box, now it contains the contents of that box, and you have no way to get the contents of it again because you cleared the reference to it.

I don't believe so... I am able to get as far as:

_ArrayConcatenate($carsEngine, $carsModel)
        _ArrayDisplay($carsEngine, "Cars Engine") ;<---- This contains the Chevy.

        Dim $carsDriveTrain[1][16]
        Dim $carsDriveTrain2[1][16]
        $driveTrainVal = GUICtrlRead($driveTrain)
        If $driveTrainVal = "4x4" Or $driveTrainVal = "awd" Then

            $carsDriveTrain = _filter($carsEngine, 0, 9, "4") ;<---- Returns No Result.
            $carsDriveTrain2 = _filter($carsEngine, 0, 9, "a") ;<--- Returns No Result.
;~          _ArrayDisplay($carsDriveTrain, "Drive Train Before") ;<- Which means This Contains Nothing.
;~          If @error Then
;~              MsgBox("", "", "Cars Drive Train Error: " & @error)
;~          EndIf
;~          _ArrayDisplay($carsDriveTrain2, "Drive Train2 Before");< And This Contains Nothing as Well.
;~          If @error Then
;~              MsgBox("", "", "Cars Drive Train 2 Error: " & @error)
;~          EndIf
            _ArrayConcatenate($carsDriveTrain, $carsDriveTrain2)

            _ArrayDisplay($carsDriveTrain, "Drive Train After Concat")

        ElseIf $driveTrainVal = "" Then

            _ArrayConcatenate($carsDriveTrain, $carsEngine)

        Else

            $carsDriveTrain = _filter($carsEngine, 0, 9, $driveTrain)
        EndIf


        Dim $carsOdom[1][16]
        $min = GUICtrlRead($odomMin)
        $max = GUICtrlRead($odomMax)
        For $i = 0 To UBound($carsDriveTrain) - 1

            If $carsDriveTrain[$i][14] > $min And $carsDriveTrain[$i][14] < $max Then

                _ArrayAdd($carsOdom, $carsDriveTrain[$i])
                MsgBox("", "", "ADDED!")

            EndIf

        Next

        _ArrayDisplay($carsOdom, "Cars Odom")

 

Share this post


Link to post
Share on other sites
3 minutes ago, rm4453 said:

I don't believe so

Your belief and reality are two different things. You are indeed rewriting the value that the variable $engine contains.


If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
How to ask questions the smart way!

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.  -  ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.  -  Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.  -  _FileGetProperty - Retrieve the properties of a file  -  SciTE Toolbar - A toolbar demo for use with the SciTE editor  -  GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.  -   Latin Square password generator

Share this post


Link to post
Share on other sites
10 minutes ago, BrewManNH said:

Your belief and reality are two different things. You are indeed rewriting the value that the variable $engine contains.

If you believe this is the case will you please point out or highlight which portion of the script after where I commented this contains the chevy, relies on $engine? If you are correct this would be an extremely easy fix, and I would love to have it boil down to something this simple.

 

*In case this helps I can confirm for you other than the GUI initialization this is the only time it is used up to that point:

$carsYear = _filter($cars, 0, 0, GUICtrlRead($year))
        $carsMake = _filter($carsYear, 0, 1, GUICtrlRead($make))
        Global $carsModel = _filter($carsMake, 0, 2, GUICtrlRead($model))

        $i = 0
        $engine = GUICtrlRead($engine);<--- Here

        If $engine <> "" Then

 

Edited by rm4453

Share this post


Link to post
Share on other sites

rm4453,

BrewManNH is absolutely correct. The first time through the loop you trash the $engine ControlID - which means every subsequent pass will not get the correct data into the variable as it will not read the value entered in the control. As a general principle the variables for the ControlID and the data within the control should always have distinct names.

M23


Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Share this post


Link to post
Share on other sites
Just now, Melba23 said:

rm4453,

BrewManNH is absolutely correct. The first time through the loop you trash the $engine ControlID - which means every subsequent pass will not get the correct data into the variable as it will not read the value entered in the control. As a general principle the variables for the ControlID and the data within the control should always have distinct names.

M23

I see the issue he commented about, I fixed that issue, and am still receiving the same result. I do appreciate him pointing that out.

Share this post


Link to post
Share on other sites

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

  • Similar Content

    • By adjist
      Hello all! 
       
      Getting this error :
      (22) : ==> Variable used without being declared.: if $vNumber = 0 Then if ^ ERROR  
      But I'm sure I have defined the variable, as in the top of my script has 
      Global $vNumber = 0  
      How would I go about fixing this?
       
    • By D2thunder
      Hi all, I wasnt active in this Forum forum for Years. 😅
      Since I need something with Json in AutoIt i write a little UDF to save a variable to file to read it with another language - and back. After a while until my other script grows i thought - lets integrate all variables wich is possible, because i want have arrays to.
      This is my first public UDF in Autoit - normaly my AutoIt scripts are quick an dirty.... - like the examples for this udf. - someone want to write nice examples?
      I tried to write this UDF properly, cared for processing speed, low mem consumption as possible, a short code, and a high usability without beeing very familiar with arrays.
      What is it for? - convert nearly all types of variables to a json string for saving it in a file or to an ini. Read it back in to a same formated variable and preserv variable types. All array types are supported with nested arrays, the only restriction is ram and array/stringsize - and time if the array is very big. You can use Filters for variable types and some other options.
      If anyone found a bug or any suggestions, please post it.
       
      get Json.au3 from here Json.au3
       
       
      JsonVar 2019.01.25.1.zip
    • By Ho3ein
      Hi, i have a source code of "Danny35d" and i have 2 main question that are:
       How to extract this function's results (Datas are as Array) to combo-box without set number of datas?  When i type 1, 2 in _SystemUsers($AccountType = 0) to get only Local or Domain users, it just give me both of them, it's old problem of this function, please share us debugged code :)❤ #include <Array.au3> $Users = _ArrayToString(_SystemUsers(), "|", 1) ConsoleWrite($Users & @CRLF) #cs =============================================================================== Function: _SystemUsers($AccountType = 0) Description: Return an array with the local or domain username Parameter(s): $AccountType: Local, domain or both username 0 = Local and Domain usernames 1 = Local usernames only 2 = Domain usernames only Returns: An array with the list of usernames - Succeeded @error 1 - Didn't query any username @error 2 - Failed to create Win32_SystemUsers object @error 3 - Invalid $AccountType Author(s): Danny35d #ce =============================================================================== Func _SystemUsers($AccountType = 0) Local $aSystemUsers Local $wbemFlagReturnImmediately = 0x10, $wbemFlagForwardOnly = 0x20 Local $colItems = "", $strComputer = "localhost" If Not StringRegExp($AccountType, '[012]') Then Return SetError(3, 3, '') $objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\CIMV2") $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_SystemUsers", "WQL", _ $wbemFlagReturnImmediately + $wbemFlagForwardOnly) If IsObj($colItems) Then For $objItem In $colItems $Output = StringSplit($objItem.PartComponent, ',') If IsArray($Output) Then $Temp = StringReplace(StringTrimLeft($Output[2], StringInStr($Output[2], '=', 0, -1)), '"', '') If $AccountType = 0 Or ($AccountType = 1 And @ComputerName = $Temp) Then $aSystemUsers &= StringReplace(StringTrimLeft($Output[1], StringInStr($Output[1], '=', 0, -1)), '"', '') & '|' ElseIf $AccountType = 2 And @ComputerName <> $Temp Then $aSystemUsers &= StringReplace(StringTrimLeft($Output[1], StringInStr($Output[1], '=', 0, -1)), '"', '') & '|' EndIf EndIf Next $aSystemUsers = StringTrimRight($aSystemUsers, 1) If $aSystemUsers = '' Then Return(SetError(1, 1, $aSystemUsers)) Return(SetError(0, 0, StringSplit($aSystemUsers, '|'))) Else $aSystemUsers = '' Return(SetError(2, 2, $aSystemUsers)) EndIf EndFunc ;==>_SystemUsers Thanks to your best Team.
    • By MarkIT
      Hi AutoIT masters,
      Good day! Sorry to have bothered this forum but we really need help. We are working on an automation project that is running on VDI server. The BOTS are in .exe are running fine until AV detected them and deleted the files. The files were re-compiled and AV kept on deleting them. The copy of the .exe BOT deleted were sent to Symantec for whitelisting. After whitelisting, it is no longer deleted but no longer working as designed (showing Line script error). We checked the scripts and there were no issues since we run it using SciTE editor and it performed the desired task. Good thing we found on this thread the solution using .a3x and the BOTS worked fine and no longer deleted. Now, the problem is they are asking why the BOTS won't run in .EXE and what is the reason behind Symantec AV deleting them. We raised a case with Symantec but they cannot provide further information as they are always seeing the file as "False Positive". We even tested with Symantec turned off and those .EXE files are working fine, however, after re-enabling, it got deleted.
      Just seeking help on how to better convince them that it is really Symantec causing the issue and the .a3x file.
    • By moimon
      Hi all. 
      Sorry if my words are confusing because I am not good at English.
      I am writing code to embed website with Recaptcha in GUI. And then, the code will automatically press the "I'm not a robot" button. The problem here is:
         - The code still works fine when entering iFrame to interact with Recaptcha with the URL is "https://www.google.com/recaptcha/api2/demo"
      <snip>
       
         - But for other URLs (such as "https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php"), the code cannot be entered into the iframe.
       
      Code:
      <snip>  
      I did a lot of research but didn't know why.
       I sincerely thanks for the help. 
×
×
  • Create New...