Jump to content

Array limitations


 Share

Recommended Posts

[] col0 col1 col3 col4 col5 col6

[1] 47 yellow square etc etc etc

[2] another set of data

In AutoIt, it is best to know how many elements you want to use before you start using it. Use a dimensioning statement, like Local to allocate the amount of memory needed and the size.

Local $vVar[7][3]

This will create an array with seven elements across and 3 elements down. Think of a chessboard with that many rows and columns, where you can put a piece of information on each square.

If you are not sure how many rows or columns you need, make your best estimate or maybe go a little big for the dimensions. This way you do not have to resize the arrays (non-trivial time) multiple times. If you have no clue how much room you need, dimension to 1 x 1 and then eat time by resizing each time it is needed.

Local $aExact[10][9]      ; I know I will need ten columns and nine rows
Local $aEstimate[19][99]  ; I think I may need up to 19 columns and 99 rows, but it will probably be less.
Local $aNoIdea[1][1]      ; Allocate only $aNoIdea[0][0], because all array indexes start at 0.
Local $sInput, $sList
Local $nCol, $nRow = 0

While True
   $sInput = InputBox("Enter a sentence.", "Array Training", "", " M")
   If @Error > 0 Then ExitLoop
   $sList = _ArraySplit($sInput)
   If UBound($sList) > UBound($aNoIdea, 1) or $nRow > UBound($aNoIdea, 2) Then
       ; max finds the largest value of its arguments
       ReDim $aNoIdea[max(UBound($sList), UBound($aNoIdea, 1))][max($nRow + 9, UBound($aNoIdea, 2))]  ; Add 9 extra rows, just so I don't have to resize later.
   Endif
   For $nCol = 0 To UBound($sList)
       $aNoIdea[$nCol][$nRow] = $sList[$nCol]
   Next
   ++$nRow   ; Add one to $nRow
Wend

Most of the _Array functions are designed only for 1-dimensional arrays.

David Nuttall
Nuttall Computer Consulting

An Aquarius born during the Age of Aquarius

AutoIt allows me to re-invent the wheel so much faster.

I'm off to write a wizard, a wonderful wizard of odd...

Link to comment
Share on other sites

  • Replies 40
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Hi David

Local [100][6]

The [100] is about what I need, the [6] will never change as 6 variables will always be sent to it, I just need to add them ALL one row at a time to $list array, I would have thought it fairly simple/straightforward, apparently not so.

$sList = _ArraySplit($sInput)

$sList = ^ ERROR

When I saw ArraySplit I wondered where you got that as my help file doesn't have it and it gets an error?

Edited by Phaser
Link to comment
Share on other sites

Hi David

Local [100][6]

The [100] is about what I need, the [6] will never change as 6 variables will always be sent to it, I just need to add them ALL one row at a time to $list array, I would have thought it fairly simple/straightforward, apparently not so.

$sList = _ArraySplit($sInput)

$sList = ^ ERROR

When I saw ArraySplit I wondered where you got that as my help file doesn't have it and it gets an error?

:D My mistake. I used the wrong function. StringSplit splits up a string, not _ArraySplit. Sorry about that. Try this.

Local $aExact[10][9]      ; I know I will need ten columns and nine rows
Local $aEstimate[19][99]  ; I think I may need up to 19 columns and 99 rows, but it will probably be less.
Local $aNoIdea[1][1]      ; Allocate only $aNoIdea[0][0], because all array indexes start at 0.
Local $sInput, $sList
Local $nCol, $nRow = 0

While True
   $sInput = InputBox("Enter a sentence.", "Array Training", "", " M")
   If @Error > 0 Then ExitLoop
   $sList = StringSplit($sInput, " ", 2)   ; Corrected 
   If UBound($sList) > UBound($aNoIdea, 1) or $nRow > UBound($aNoIdea, 2) Then
       ; max finds the largest value of its arguments
       ReDim $aNoIdea[max(UBound($sList), UBound($aNoIdea, 1))][max($nRow + 9, UBound($aNoIdea, 2))]  ; Add 9 extra rows, just so I don't have to resize later.
   Endif
   For $nCol = 0 To UBound($sList)
       $aNoIdea[$nCol][$nRow] = $sList[$nCol]
   Next
   ++$nRow   ; Add one to $nRow
Wend

David Nuttall
Nuttall Computer Consulting

An Aquarius born during the Age of Aquarius

AutoIt allows me to re-invent the wheel so much faster.

I'm off to write a wizard, a wonderful wizard of odd...

Link to comment
Share on other sites

I fell a sleep yesterday sorry.

All those things are very complicated.

Try this.

Local $aList[6000];\\ Just for kicks ReDim is slow
Local $Offset = 0;
$var = "47 yellow square etc etc etc";
$aList[$Offset] = $var;
$Offset += 1;
$aTempSplit = StringSplit($var, ' ');
For $i = 1 to $aTempSplit[0]
MsgBox(0, "The " + $i + " Is..", $aTempSplit[$i]);
Next
Link to comment
Share on other sites

hi athiwatc, I appreciate your efforts, thanks

your method does work, the msgbox shows individual values but I still need those values added to a 2D array as one entry of 6 values, I have also tried writing it all to a file, no problem, seperated by a pipe "|" but then can't pull them from the txt file into a 2D array

Any ideas?

EDIT

As I have this set of data

If IsArray($vars) Then

MsgBox(0, "array of data", $vars[0] & $vars[1] & $vars[2] & $vars[3] & $vars[4] & $vars[5])

EndIf

Is there a way to add individual values to individual elements of the 2d array, in pseudo

arraypush($listCol0,$var[0])

arraypush($listCol1,$var[1])

etc

etc

Edited by Phaser
Link to comment
Share on other sites

Global $aList[6000];\\ Just for kicks ReDim is slow
Global $Offset = 0;
$var = "47 yellow square etc etc etc";
_PushMe($var);
$var = StringSplit($aList[0], ' ',2);0 can be any number you want as long as you push up to it.
If IsArray($vars) Then
MsgBox(0, "array of data", $vars[0] & $vars[1] & $vars[2] & $vars[3] & $vars[4] & $vars[5])
EndIf

Func _PushMe($y)
$aList[$Offset] = $y;
$Offset += 1;
endfunc

Edited by athiwatc
Link to comment
Share on other sites

hi mate this looks like it may work but I keep getting an error

"Func" statement has no matching "EndFunc".:

Func _PushMe($y)

getnumberdetails() ; returns the $thenumber, $colour, $shape, $sides, $coating, $size

$var = $thenumber & $colour & $shape & $sides & $coating & $size;
_PushMe($var);
$var = StringSplit($aList[6], ' ',2);0 can be any number you want as long as you push up to it.

If IsArray($vars) Then
MsgBox(0, "array of data", $vars[0] & $vars[1] & $vars[2] & $vars[3] & $vars[4] & $vars[5])
EndIf

Func _PushMe($y)
$aList[$Offset] = $y;
$Offset += 1;
EndFunc


_ArrayDisplay($aList,"Display")

Any ideas, thanks again for all the help

EDIT again

I was just looking at transposed array display, is that what I shoul dbe looking at?, it displays the values correctly but only adds one row and overwrites it with the next one, I need it to keep adding rows of 6 sets of data?

Edited by Phaser
Link to comment
Share on other sites

I replace the value with '' because I don't have your script, you can replace it back.

#include<array.au3>

Global $aList[6000], $Offset = 0

$vars = 'thenumber' & ' ' & 'colour' & ' ' & 'shape' & ' ' & 'sides' & ' ' & 'coating' & ' ' & 'size'
_PushMe($vars);
$vars = StringSplit($aList[0], ' ',2);0 can be any number you want as long as you push up to it.

If IsArray($vars) Then
MsgBox(0, "array of data", $vars[0] & $vars[1] & $vars[2] & $vars[3] & $vars[4] & $vars[5])
EndIf

_ArrayDisplay($vars,"Display")
_ArrayDisplay($aList,"Display")

Func _PushMe($y)
$aList[$Offset] = $y;
$Offset += 1;
EndFunc
Link to comment
Share on other sites

I dont know what "value" you are talking about, I still get the same error

"Func" statement has no matching "EndFunc"

Func _PushMe($y)

$vars = 'thenumber' & ' ' & 'colour' & ' ' & 'shape' & ' ' & 'sides' & ' ' & 'coating' & ' ' & 'size'
_PushMe($vars);
$vars = StringSplit($aList[0], ' ',2);0 can be any number you want as long as you push up to it.

_ArrayDisplay($aList,"Display")

Func _PushMe($y)
$aList[$Offset] = $y;
$Offset += 1;
EndFunc

$vars is already an array of 6 elements/values, I cant believe this is so difficult to do

Link to comment
Share on other sites

I dont know what "value" you are talking about, I still get the same error

"Func" statement has no matching "EndFunc"

Func _PushMe($y)

$vars = 'thenumber' & ' ' & 'colour' & ' ' & 'shape' & ' ' & 'sides' & ' ' & 'coating' & ' ' & 'size'
_PushMe($vars);
$vars = StringSplit($aList[0], ' ',2);0 can be any number you want as long as you push up to it.

_ArrayDisplay($aList,"Display")

Func _PushMe($y)
$aList[$Offset] = $y;
$Offset += 1;
EndFunc

$vars is already an array of 6 elements/values, I cant believe this is so difficult to do

That's a problem in your script and not mine.

Put

Func _PushMe($y)

$aList[$Offset] = $y;

$Offset += 1;

EndFunc

Outside your Func, It should not be inside your Func, EndFunc.

It is hard because you are not releasing your script that is why.

Link to comment
Share on other sites

ok that now works BUT it puts all the vars in one Column, I need 6 seperate columns, one piece of data in each

Currently I have

[0]----|47 yellow square etc etc etc|

All in Col 0

I need

Row----|Col 0---|Col 1---|Col 2---| etc etc etc

[0]----|47------|yellow--|square--| etc etc etc

[1]----|97------|green---|round---| etc etc etc

[2]----|52------|brown---|square--| etc etc etc

Thanks for your patience WolfWorld but it looks like it is almost there, what do you mean about the 0 on this line

$vars = StringSplit($aList[0], ' ',2);0 can be any number you want as long as you push up to it.

I changed the 0 to a 6 and it still doesnt seperate the string into seperate Col's

why are we putting the vars into a string then seperating them again? I take it $aList[0] is Col 0 ? isn't this defeating the object by limiting it to the first [0] Column in a row?

How should I push further, if I understand it correctly

0 can be any number you want as long as you push up to it.

Edited by Phaser
Link to comment
Share on other sites

  • Moderators

Phaser,

Following on from your PM, I have read this topic. If I understand what you want to do correctly, I offer the following as a basis for further discussion. Some of the ideas have already been mentioned above - particularly in Nuster's posts (if you get advice from a professor in the subject, it is usually pretty good! :D ):

; only needed for the _ArrayDisplay in this script
#include <Array.au3>

; Declare the array initially with few rows, but with the correct number of columns
; of course you can make the initial size larger if you wish and have a reasonable idea of the max size
Global $aArray[2][6]
; use this element as a counter
$aArray[0][0] = 0

While 1

    ; Call getnumberdetails - I assume you then have these variables declared and assigned with the correct values for each pass
    $thenumber = 1
    $colour = "yellow"
    $shape = "square"
    $sides = 4
    $coating = "mink"
    $size = 37

    ; We now need to get these values into the next available row of $aArray

    ; First increase the count value by 1
    $aArray[0][0] += 1
    ; Now see if the array is big enough and double array size if too small (fewer ReDim needed)
    If UBound($aArray) <= $aArray[0][0] + 1 Then ReDim $aArray[UBound($aArray) * 2][6]
    ; Add variables to array
    $aArray[$aArray[0][0]][0] = $thenumber
    $aArray[$aArray[0][0]][1] = $colour
    $aArray[$aArray[0][0]][2] = $shape
    $aArray[$aArray[0][0]][3] = $sides
    $aArray[$aArray[0][0]][4] = $coating
    $aArray[$aArray[0][0]][5] = $size

    _ArrayDisplay($aArray)

WEnd

The _ArrayDisplay is only there so you can see how the array fills as we go. Similarly, the While...WEnd loop is a minimalist construct to show the fill on successive lines and the ReDim eslargements.

I have kept the code pretty simple - trying to complicate array filling with loops and functions often ends in tears in my experience. Does this help you get close to your requirements?

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

 

Link to comment
Share on other sites

Hi M23 that is exactly what I wanted, I have been fiddling a bit though as it creates a new entry every time but it doesnt pick up the new data set, it keeps reproducing the same set of them while growing, I will show my ignorance here, here is the layout of my script, shortened to save space

#includes

hotkey

guicreate bits n bobs

Dim $assortment $of $variables

Global $list[2][6]

$list[0][0] = 0

While 1

sleep(1000)

wend

Function goforit(); triggered by start button

while 1

controlclick to select next number file

sleep (200)

getnumberdetails() ; returns the $thenumber, $colour, $shape, $sides, $coating, $size

while 1

sendtoarray()

wend

wend

Function sendtoarray() down here

The above must be wrong as with the while in place it just loops through the same data set, with it commented out it just adds one row and overwrites it with the next data set, my structure must be wrong, how should I add your code to the above structure, I have placed you code in its own function, it is 99% there thanks for your help

Edited by Phaser
Link to comment
Share on other sites

  • Moderators

Phaser,

Too many While...WEnd loops, methinks! :D

Take a look at this. You need to press the button to get each new entry - if that is not what you need then let me know and we can modify the code very easily. Again the _ArrayDisplay is there just to let you see what is happening and I have simulated the 6 data variables.

; include
#include <GUIConstantsEx.au3>
#include <Array.au3>

; declarations
Global $aArray[2][6]
Global $thenumber, $colour, $shape, $sides, $coating, $size

; hotkey
HotKeySet("{ESC}", "getoutofhere")

Opt("GUIOnEventMode", 1)  ; Change to OnEvent mode

; GUI
$hGUI = GUICreate("Test", 500, 500)
GUISetOnEvent($GUI_EVENT_CLOSE, "getoutofhere")

$hButton = GUICtrlCreateButton("Add to Array", 10, 10, 80, 30)
GUICtrlSetOnEvent($hButton, "goforit")

GUISetState()

; idle loop
While 1
    Sleep(10)
WEnd

Func goforit()

    ; Simulate getting the data from the other app and using getnumberdetails() to get it into the right variables
    $thenumber = Random(10, 99, 1)
    $colour = Random(10, 99, 1)
    $shape = Random(10, 99, 1)
    $sides = Random(10, 99, 1)
    $coating = Random(10, 99, 1)
    $size = Random(10, 99, 1)

    sendtoarray()

EndFunc

Func sendtoarray()

    ; First increase the count value by 1
    $aArray[0][0] += 1
    ; Now see if the array is big enough and double array size if too small (fewer ReDim needed)
    If UBound($aArray) <= $aArray[0][0] + 1 Then ReDim $aArray[UBound($aArray) * 2][6]
    ; Add variables to array
    $aArray[$aArray[0][0]][0] = $thenumber
    $aArray[$aArray[0][0]][1] = $colour
    $aArray[$aArray[0][0]][2] = $shape
    $aArray[$aArray[0][0]][3] = $sides
    $aArray[$aArray[0][0]][4] = $coating
    $aArray[$aArray[0][0]][5] = $size

    _ArrayDisplay($aArray)

EndFunc

Func getoutofhere()
    Exit
EndFunc

Are we better than 99% now? :D

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

 

Link to comment
Share on other sites

Ok, here is some cleaned-up code, meant to more closely deal with your issue, not just an illistration.

#include <math.au3>  ; For _Min

; Try to estimate the number of rows needed well, because ReDim is kind of slow.
Local $a2D[6][99]    ; 6 columns by 99 rows
Local $nPos = -1     ; The last row that is assigned.  
Local $sInput        ; String read from the InputBox.
Local $aRow          ; Split row (array)
Local $I, $K         ; Loop iteration variables
Local $sDisplay      ; String used for display purposes.

While True
    ; I am using InputBox; you may want to get your information in another way.
    $sInput = InputBox("Please enter 6 words.", "Testing", "", " M")
    If @Error = 1 Then ExitLoop  ; Exit the loop once Cancel is clicked.
    ; Because the Mandatory flag is set, $sInput will have text.

    $aRow = StringSplit($sInput, ' ', 2)    ; String is split into a single dimensioned array, starting at index 0.
    ++$nPos                                 ; Increment $nPos
    If $nPos >= UBound($a2D, 2) Then        ; If the next row to write is bigger than the number of rows in the array ...
        ReDim $a2D[6][$nPos+99]             ;   resize the array with more rows.
    Endif
    For $I = 0 To _Min(5, UBound($aRow)-1)  ; Only go to the smaller of 5 (end of $a2D) or the last element of $aRow.
        $a2D[$I][$nPos] = $aRow[$I]         ; Assign the row
    Next
Wend

; Now the two-dimensional array $a2D is populated from the data.  The active range in the array is from row 0 (the first one) to row $nPos.
For $I = 0 To $nPos
    $sDisplay = "Row " & ($I + 1) & ":  " & $a2D[0][$I]  ; Set up the row number and the first string in this row of the array.
    For $K = 1 To 5                                      ; Go through the other strings in this row.
        $sDisplay &= "|" & $a2D[$K][$I]                  ; Append the next string in this row.
    Next
    If MsgBox(1, "Testing", $sDisplay) = 2 Then          ; Display Ok & Cancel buttons.  Check if Cancel button pressed.
        ExitLoop                                         ; If the Cancel button was pushed, stop displaying the rows.
    EndIf
Next

David Nuttall
Nuttall Computer Consulting

An Aquarius born during the Age of Aquarius

AutoIt allows me to re-invent the wheel so much faster.

I'm off to write a wizard, a wonderful wizard of odd...

Link to comment
Share on other sites

Thanks guys, I have decided to use M23s' code as it is much easier for me to understand.

Are we better than 99% now?

99.9% now, is it possible to add the new data to the top of the array rather than at the bottom, without using arrayreverse (will arrayreverse work on this array, what type of array have we just created 1d or 2d?), the reason is, I will have msg boxes setup to monitor data input for example, how many times in the last 20 entries did "yellow" "square" appear or "green" "triangle" etc

So, can we reverse the direction the data is added?

Is this a 1d or 2d array

Link to comment
Share on other sites

  • Moderators

Phaser,

Adding new data to the top of the array will result a huge time penalty as every existing element in the whole array is moved down by one. It is a relatively trivial thing to code, but with a large array, you are talking of serious time (and I am talking in human, not computer, terms :D ). So the question is: how often do you add new data? If only pretty infrequently than the penalty might be acceptable - if the inputs are closely spaced, then the penalty is likely to be too great to be worth the effort. Or are you prepared to take the hit for an initial large data population, with only infrequent updates later?

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

 

Link to comment
Share on other sites

M23, thats something else I forgot to ask, I do want it to reverse the order, newest entry at the top [1] (as [0] is the counter) the overhead should be ok as I dont need to keep more than 100 records (rows) in the array so as it gets added 1 becomes 2 and 99 becomes 100 dropping row 100 with every new addition of data, hope that makes sense.

So, reverse the order AND limit the amount of rows to 100 max, then we should be at 100%.

Thank you very much for your help thus far M23

Link to comment
Share on other sites

  • Moderators

Phaser,

Going for glory! :D

; include
#include <GUIConstantsEx.au3>
#include <Array.au3>

; declarations

Global $iMax_Elements = 10 ; just for testing - you can set what you want

Global $aArray[$iMax_Elements][6] ; the array is now a fixed size
Global $thenumber, $colour, $shape, $sides, $coating, $size

; hotkey
HotKeySet("{ESC}", "getoutofhere")

Opt("GUIOnEventMode", 1)  ; Change to OnEvent mode

; GUI
$hGUI = GUICreate("Test", 500, 500)
GUISetOnEvent($GUI_EVENT_CLOSE, "getoutofhere")

$hButton = GUICtrlCreateButton("Add to Array", 10, 10, 80, 30)
GUICtrlSetOnEvent($hButton, "goforit")

GUISetState()

; idle loop
While 1
    Sleep(10)
WEnd

Func goforit()

    ; Simulate getting the data from the other app and using getnumberdetails() to get it into the right variables
    $thenumber = Random(10, 99, 1)
    $colour = Random(10, 99, 1)
    $shape = Random(10, 99, 1)
    $sides = Random(10, 99, 1)
    $coating = Random(10, 99, 1)
    $size = Random(10, 99, 1)

    sendtoarray()

EndFunc

Func sendtoarray()

    ; Move everything down one row
    For $i = $iMax_Elements - 2 To 0 Step -1
        For $j = 0 To 5
            $aArray[$i + 1][$j] = $aArray[$i][$j]
        Next
    Next

    ; Now put the new data into the first row
    $aArray[0][0] = $thenumber
    $aArray[0][1] = $colour
    $aArray[0][2] = $shape
    $aArray[0][3] = $sides
    $aArray[0][4] = $coating
    $aArray[0][5] = $size

    _ArrayDisplay($aArray)

EndFunc

Func getoutofhere()
    Exit
EndFunc

This is actually much simpler code. With a fixed array size there is no need for a counter nor a check to see if the array requires a ReDim. Just note that your data now fills from the [0] row and not the [1] row as before (no counter to hog the row! :D )

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

 

Link to comment
Share on other sites

Glory achieved :D hats off to you M23, just had a quick play with it and so far it's perfect, just hope searching it is going to be easy, in php I use array split to select the first x number of array elements, had a quick look at arraysearch in autoit looks like it's going to work as it works on 1d and 2d arrays, any suggestions or pointers?.

Is this now a 2d array?

Link to comment
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
 Share

  • Recently Browsing   0 members

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