AutoIt/Tablice - funkcje obsługi
Wyświetlanie zawartości tablicy
[edytuj]_ArrayDisplay
[edytuj]#include <Array.au3> _ArrayDisplay ( Const ByRef $avArray [, $sTitle = "ArrayDisplay" [, $sArrayRange = "" [, $iFlags = 0 [, $vUser_Separator = Default [, $sHeader = Default [, $iMax_ColWidth = Default [, $iAlt_Color = Default [, $hUser_Function = ""]]]]]]]] )
Funkcja wyświetla zawartość 1 lub 2-wymiarowej tablicę w kontrolce ListView. Zwraca 1 gdy sukces, lub 0 gdy wystąpił błąd. W tym wypadku makro @error
przyjmuje wartość: 1 - $avArray
nie jest tablicą, 2 - wymiar tablicy jest większy niż 2.
$avArray - nazwa tablicy
$sTitle - tytuł kontrolki
$sArrayRange - maksymalna ilość wierszy / kolumn (domyślnie cała tablica), przykładowa składnia tego parametru:
"7" - pokaż wiersze 0-7 z wszystkich kolumn "7:" - pokaż ostatnie wiersze od 7 do końca z wszystkich kolumn "|7" - pokaż wszystkie wiersze z kolumnami 0-7 "|7:" - pokaż wszystkie wiersze z kolumnami od 7 do końca "7|7" - pokaż wiersze 0-7 z kolumnami 0-7 "05:07" - pokaż wiersze 5-7 z wszystkich kolumn "|05:07" - pokaż wszystkie wiersze z kolumnami 5-7 "7|05:07" - pokaż wiersze 0-7 z kolumn 5-7 "5:07|7" - pokaż wiersze 5-7 z kolumn 0-7 "05:07|05:07" - pokaż wiersze 5-7 z kolumn 5-7
$iFlags - opcje wyświetlania (suma następujących wartości), 0 - domyślne, 1 - przetworzenie tablicy (zamiana wierszy na kolumny i kolumn na wiersze), 2 - wyrównanie do prawej, 4 - środkowanie, 8 - wyświetlania MsgBox na ekranach powitalnych i błędów podczas przetwarzania dużych tablic
$vUser_Separator - ustawia opcję wyświetlania kolumny podczas kopiowania danych do schowka. "znak" - znak separatora między kolumnami, liczba - stała szerokość kolumny (szersze zostaną przycięte do tej wartości), Default - domyślny znak separatora (najczęściej pionowa kreska |)
$sHeader - nazwy kolumn w nagłówku (ciąg nazw oddzielonych bieżącym separator - zwykle "|")
$iMax_ColWidth - szerokość maksymalna kolumn w kontrolce, Default = 350 pikseli
$iAlt_Color - alternatywny kolor co drugiego wiersza, Default - wszystkie wiersze w kolorze tła
$hUser_Function - zmienna przypisana do funkcji zdefiniowanych przez użytkownika, Defaulte = None
Znaczenie 4 przycisków w dolnej części okna:
Copy Data & Hdr/Row - skopiować tablicę lub wybrany wiersz (wiersze) do schowka, dodając pełny nagłówek i identyfikator wiersza
Copy Data Only - skopiować tablicę lub wybrany wiersz (wiersze) do schowka bez nagłówka i identyfikatorów wiersza
Run User Func - uruchomić funkcję zdefiniowaną przez użytkownika przekazaną w $sUser_Function. Funkcja ta jest całkowicie odrębny od UDF i jest tworzona przez użytkownika. Musi posiadać dwa parametry: 1 - pełna tablica, 2 - 1-wymiarowa tablica pomocnicza, która w indeksie [0] przekazuje ilość wybranych wierszy. Przycisk jest nieaktywny, jeżeli funkcja nie została zdefiniowana.
Skrypt Exit - natychmiast zakończyć skrypt
Przykład pokazujący całą gamę możliwości funkcji:
#include <Array.au3>
; tworzenie tablicy 1D
Local $aArray_1D[5] = ["Wartość 0", "Wartość 1", "Bardzo długa Wartość 3", "Wartość 3", "Wartość 4"]
_ArrayDisplay($aArray_1D, "Tablica 1D")
_ArrayDisplay($aArray_1D, "Tablica przetworzona na 2D", Default, 1)
; tworzenie tablicy 2D
Local $aArray_2D[75][255]
For $i = 0 To UBound($aArray_2D) - 1
For $j = 0 To UBound($aArray_2D, 2) - 1
$aArray_2D[$i][$j] = "Wartość " & StringFormat("%02i", $i) & StringFormat("%02i", $j)
Next
Next
_ArrayDisplay($aArray_2D, "Tablica 2D")
_ArrayDisplay($aArray_2D, "Tablica 2D zamienione wiersze z kolumnami", Default, 1)
ReDim $aArray_2D[20][10]
$aArray_2D[5][5] = "Bardzo długa wartość"
_ArrayDisplay($aArray_2D, "Tablica z alternatywnymi kolorami wierszy i zmienionymi nazwami kolumn", _
Default, Default, Default, "AA|BB|CC|DD|EE|FF|GG|HH|II|JJ", Default, 0xDDFFDD)
; przypisanie nazwy funkcji użytkownika do zmiennej
Local $hUserFunction = _UserFunc
$aArray_2D[5][5] = "Wyrównanie do prawej"
Local $aSelected[] = [2]
_ArrayDisplay($aArray_2D, "Zakres danych - wyrównanie do prawej - szerokość kolumny - funkcja użytkownika", _
"3:7|4:9", 2, 15, "AA|BB|CC|DD|EE|FF", Default, Default, $hUserFunction)
_ArrayDisplay($aArray_2D, "Zakres danych - środkowanie - szerokość kolumny - zamiana kolumn z wierszami", _
"3:7|4:9", 5, 15, "AA|BB|CC|DD|EE|FF")
; wygenerowanie błędu, zmienna nie jest tablicą
Local $vVar = 0
_ArrayDisplay($vVar, "Bardzo poważny błąd!", Default, 8)
; definicja funkcji użytkownika
Func _UserFunc($aArray_2D, $aSelected)
MsgBox (0,"Funkcja użytkownika", "Ilość wybranych wierszy: " & $aSelected[0])
EndFunc
Dodawanie i usuwanie komórek
[edytuj]_ArrayAdd
[edytuj]#include <Array.au3> _ArrayAdd ( ByRef $avArray, $vValue )
Funkcja dodaje komórkę na koniec istniejącej 1-wymiarowej tablicy i nadaje jej określoną wartość (przez referencję). Zwraca indeks dodanej komórki, lub -1 gdy wystąpił błąd. W tym wypadku makro @error przyjmuje wartość: 1 - zmienna nie jest tablicą, 2 - tablica nie jest 1-wymiarowa.
$avArray - nazwa tablicy
$vValue - wartość w dodawanej komórce
Przykład:
#include <Array.au3>
Local $avArray[0] ;deklarowanie pustej tablicy
_ArrayDisplay($avArray, "_ArrayAdd()")
_ArrayAdd($avArray, "Wasta")
_ArrayDisplay($avArray, "_ArrayAdd()")
_ArrayAdd($avArray, "AutoIt")
_ArrayDisplay($avArray, "_ArrayAdd()")
_ArrayColDelete
[edytuj]#include <Array.au3> _ArrayColDelete ( ByRef $aArray, $iColumn [, $bConvert = False] )
Funkcja usuwa wybraną kolumnę z 2-wymiarowej tablicy. Wynik zapisuje w tablicy przez referencję. Zwraca pozostałą ilość kolumn, lub -1 gdy wystąpił błąd. W tym wypadku makro @error przyjmuje jedną z wartości: 1 - zmienna nie jest tablicą, 2 - tablica nie jest 2-wymiarowa, 3 - nr kolumny jest po za zakresem.
$aArray - 2-wymiarowa tablica, wynik działania funkcji będzie przez referencję w niej zapisany
$iColumn - nr kolumny do usunięcia
$bConvert - dla True jeżeli w tablice pozostanie tylko jedna kolumna, to będzie ona zmieniona w tablicę 1-wymarową
Przykład:
#include <Array.au3>
Local $aArray[4][3]
For $i = 0 To 3
For $j = 0 To 2
$aArray[$i][$j] = $i & $j
Next
Next
_ArrayDisplay($aArray, "Oryginalna tablica")
_ArrayColDelete($aArray, 2)
_ArrayDisplay($aArray, "Kolumna nr 2 usunięta")
;kopiowanie 2-kolumnowej tablicy
Local $aArray_2Col = $aArray
;2-wymiarowa 1-kolumnowa tablica
_ArrayColDelete($aArray, 0)
_ArrayDisplay($aArray, "1-kolumnowa tablica 2D")
;konwersja 2-wymiarowej 1-kolumnowej tablicy do tablicy 1-wymiarowej
_ArrayColDelete($aArray_2Col, 0, True)
_ArrayDisplay($aArray_2Col, "Tablica 1D")
_ArrayColInsert
[edytuj]#include <Array.au3> _ArrayColInsert ( ByRef $aArray, $iColumn )
Funkcja dodaje kolumnę do jedno lub 2-wymiarowej tablicy. Wynik zapisuje w tablicy przez referencję. Zwraca nową ilość kolumn, lub -1 gdy wystąpił błąd. W tym wypadku makro @error przyjmuje jedną z wartości: 1 - zmienna nie jest tablicą, 2 - tablica nie jest 1 lub 2-wymiarowa, 3 - nr kolumny jest mniejszy niż 0 lub większa od ilości kolumn + 1.
$aArray - 1 lub 2-wymiarowa tablica, wynik działania funkcji będzie przez referencję w niej zapisany
$iColumn - nr kolumny do dodania, komórki tej kolumny będą zawierały posty string ""
Przykład:
#include <Array.au3>
Local $aArray[4][3]
For $i = 0 To 3
For $j = 0 To 2
$aArray[$i][$j] = $i & $j
Next
Next
_ArrayDisplay($aArray, "Oryginalna tablica")
;Dodanie kolumny na poz.1"
_ArrayColInsert($aArray, 1)
_ArrayDisplay($aArray, "Dodana kolumna nr1")
_ArrayInsert
[edytuj]#include <Array.au3> _ArrayInsert ( ByRef $avArray, $iElement [, $vValue = ""] )
Funkcja dodaje komórkę w określonym miejscu istniejącej 1-wymiarowej tablicy i nadaje jej wartość (przez referencję). Zwraca nowy rozmiar tablicy, lub 0 gdy wystąpił błąd. W tym wypadku makro @error przyjmuje wartość: 1 - zmienna nie jest tablicą, 2 - tablica nie jest 1-wymiarowa.
$avArray - nazwa tablicy
$iElement - indeks komórki, w miejscu której będzie wstawiona nowa komórka, poczynając od tego miejsca pozostałe komórki będą przesunięte (ich indeks zwiększy się o 1)
$vValue - wartość w dodawanej komórce, domyślnie pusty string
Przykład:
#include <Array.au3>
Local $avArray[] = ["Ala", "kota", "i", "Asa"]
_ArrayDisplay($avArray, "_ArrayInsert()")
_ArrayInsert($avArray, 1, "ma")
_ArrayDisplay($avArray, "_ArrayInsert()")
_ArrayPush
[edytuj]#Include <Array.au3> _ArrayPush (ByRef $avArray, $vValue [, $iDirection = 0])
Funkcja dodaje nowy element do 1-wymiarowej tablicy, bez zwiększania jej rozmiaru. Wstawia nowy element (elementy) na koniec, usuwając element (elementy) na początku tablicy lub na odwrót. Zwraca 1 gdy sukces, lub 0 gdy wystąpił błąd. W tym wypadku makro @error przyjmuje wartość: 1 - $avArray nie jest tablicą, 2 - tablica $vValue jest większa od $avArray, 3 - tablica nie jest 1-wymiarowa.
$avArray - nazwa przetwarzanej tablicy
$vValue - wartość w dodawanej komórce, może być 1-wymiarową tablicą
$iDirection - określa gdzie mają być wstawiane nowe komórki, 0 - na końcu (wartość domyślna, 1 - na początku
Przykład:
#include <Array.au3>
Local $avArray[] = ["ma", "Asa", "i kota"]
_ArrayDisplay($avArray, "_ArrayPush()")
_ArrayPush($avArray, "Ala", 1)
_ArrayDisplay($avArray, "_ArrayPush()")
_ArrayDelete
[edytuj]#include <Array.au3> _ArrayDelete(ByRef $avArray, $iElement)
Funkcja usuwa komórkę (komórki) z tablicy. Zwraca nowy rozmiar tablicy, lub 0 gdy wystąpił błąd. W tym wypadku makro @error przyjmuje wartość: 1 - $avArray nie jest tablicą, 3 - wymiar tablicy jest większy niż 2, 4 - $vRange Tablica nie jest jednowymiarowa, lub ma tylko jeden element, 5 - $vRange indeks do usunięcia jest spoza zakresu tablicy.
$avArray - nazwa przetwarzanej tablicy
$iElement - indeks usuwanego elementu. Indeksem może być liczba; można podać wiersze do usunięcia, lub zakres wierszy np. "0;11-15;24", lub też inna tablica jednowymiarowa, której elementami są indeksy wierszy do usunięcia (np. powstała w wyniku funkcji _ArrayFindAll). Uwaga, w przypadku podania tablicy jednowymiarowej, jeśli długość tablicy jest równa 1, wtedy należy wskazać tablicę i ten jeden wiersz tablicy wskazującej indeks do usunięcia (_ArrayDelete($avArray, $aIndeks[0]), natomiast, jeśli długość tablicy jest większa niż 1, wskazujemy jedynie nazwę tablicy (_ArrayDelete($avArray, $aIndeks). Można to rozwiązać tak:
If UBound ($aIndeks) = 1 Then
_ArrayDelete ($avArray, $aIndeks[0])
ElseIf UBound ($aIndeks) > 1 Then
_ArrayDelete ($avArray, $aIndeks)
EndIf
Użycie _ArrayDelete w instrukcji For... To... odwołującej się do tej tablicy spowoduje błąd /np. For $c = 0 To Ubound ($avArray) -1/ - należy instrukcję For... To... zbudować tak, aby $c zmierzała od końca tablicy do początku /np. tak: For $c = Ubound ($avArray) -1 To 0 Step -1 /.
UWAGA: Funkcja działa na tablicach 1D i 2D. Dla tablic 1-wymiarowych usuwana jest komórka o podanym indeksie, dla tablic 2-wymiarowych usuwany jest cały wiersz.
Przykład dla tablicy 1D:
#include <Array.au3>
Local $avArray[] = ["Ala", "ma", "nie ma", "Asa"]
_ArrayDisplay($avArray, "_ArrayDelete()")
_ArrayDelete($avArray, 2)
_ArrayDisplay($avArray, "_ArrayDelete()")
Przykład dla tablicy 2D:
#include <Array.au3>
Local $avArray[][] = [["Ala", "ma", "Asa"],["Ala", "ma", "kota"],["Ola", "ma", "kota"]]
_ArrayDisplay($avArray, "_ArrayDelete()")
_ArrayDelete($avArray, 1)
_ArrayDisplay($avArray, "_ArrayDelete()")
_ArrayPop
[edytuj]#include <Array.au3> _ArrayPop ( ByRef $avArray )
Funkcja zwraca ostatni element 1-wymiarowej tablicy, a następnie usuwa go. Jeżeli wystąpił błąd ustawiane jest makro @error: 1 - $avArray nie jest tablicą, 2 - tablica nie jest 1-wymiarowa, 3 - tablica jest pusta.
$avArray - nazwa przetwarzanej tablicy
Przykład:
#include <Array.au3>
Local $avArray[] = ["Ala", "ma", "psa", "Asa"]
_ArrayDisplay($avArray, "_ArrayPop()")
Do
$val = _ArrayPop($avArray)
If @error Then
MsgBox(0, "_ArrayPop()", "Tablica jest pusta!")
Exit
EndIf
MsgBox(0, "_ArrayPop()", "Zwracana wartość: " & $val)
_ArrayDisplay($avArray, "_ArrayPop()")
Until 0
Przetwarzanie tablic
[edytuj]_ArrayCombinations
[edytuj]#include <Array.au3> _ArrayCombinations ( $avArray, $iSet [, $sDelim = ""] )
Funkcja zwraca tablicę z wszystkimi kombinacjami elementów danej 1-wymiarowej tablicy, lub -1 gdy wystąpił błąd. W tym wypadku makro @error przyjmuje wartość: 1 - $avArray nie jest tablicą, 2 - tablica nie jest 1-wymiarowa.
Komórka zwracanej tablicy o indeksie [0] zawiera ilość kombinacji, pozostałe kolejne kombinacje.
$avArray - nazwa przetwarzanej tablicy
$iSet - ilość elementów kombinacji
$sDelim - znak separatora pomiędzy elementami kombinacji, domyślnie brak separatora
Przykład:
#include <Array.au3>
Local $aArray[5] = [1, 2, 3, 4, 5]
For $i = 1 To UBound($aArray)
Local $aArrayCombo = _ArrayCombinations($aArray, $i, ",")
_ArrayDisplay($aArrayCombo, "Kombinacje " & $i & " elementowe")
Next
_ArrayConcatenate
[edytuj]#include <Array.au3> _ArrayConcatenate ( ByRef $avArrayTarget, $avArraySource [, $iStart = 0] )
Funkcja łączy dwie 1-wymiarowe tablice. Zwraca nowy wymiar tablicy, lub -1 gdy wystąpił błąd. W tym przypadku ustawiane jest makro @error: 1 - $avArrayTarget nie jest tablicą, 2 - $avArraySource nie jest tablicą, 3 - $avArrayTarget nie jest tablicą 1-wymiarową, 4 - $avArraySource nie jest tablicą 1-wymiarową, 5 - obie tablice nie są 1-wymiarowe.
$avArrayTarget - tablica, do której będzie dołączana druga tablica
$avArraySource - dołączana tablica
$iStart - indeks komórki w tablicy $avArraySource, od którego komórki tej tablicy będą dołączana na końcu tablicy $avArrayTarget
Przykład:
#include <Array.au3>
Local $avArrayTarget[] = [1, 2, 3, 4, 5]
Local $avArraySource[] = ["A", "B", "C", "D"]
_ArrayDisplay($avArrayTarget, "Tablica wyjściowa")
$dim = _ArrayConcatenate($avArrayTarget, $avArraySource, 1)
_ArrayDisplay($avArrayTarget, "Tablica wynikowa")
MsgBox(0, "_ArrayConcatenate()", "Nowy wymiar tablicy: " & $dim)
_ArrayExtract
[edytuj]#include <Array.au3> _ArrayExtract ( $aArray [, $iStart_Row = 0 [, $iEnd_Row = 0 [, $iStart_Col = 0 [, $iEnd_Col = 0]]]] )
Funkcja wycina z tablicy 1 lub 2-wymiarowej obszar ograniczony wierszami i kolumnami o podanych numerach. Zwraca utworzony w ten sposób fragment wyjściowej tablicy, lub -1 gdy wystąpił błąd. W tym przypadku makro @error przyjmie wartość: 1 - $aArray nie jest tablicą, 2 - $aArray ma więcej wymiarów niż 2, 3 - $iStart_Row lub $iEnd_Row po za zakresem, 4 - $iStart_Row większe od $iEnd_Row, 5 - $iStart_Col lub $iEnd_Col po za zakresem, 6 - $iStart_Col większe od $iEnd_Col.
$aArray - przetwarzana tablica 1 lub 2-wymiarowa
$iStart_Row - nr początkowego wiersza
$iEnd_Row - nr końcowego wiersza
$iStart_Col - nr początkowej kolumny (tylko dla tablic 2D)
$iEnd_Col - nr końcowej kolumny (tylko dla tablic 2D)
Przykład:
#include <Array.au3>
Dim $aArray[4][4]
For $i = 0 To 3
For $j = 0 To 3
$aArray[$i][$j] = $i & $j
Next
Next
_ArrayDisplay($aArray, "Oryginalna")
$aExtract = _ArrayExtract($aArray, 1, 2, 2, 3)
_ArrayDisplay($aExtract, "Wiersze 1-2, kol. 2-3")
_ArrayPermute
[edytuj]#include <Array.au3> _ArrayPermute ( $avArray [, $sDelim = ""] )
Funkcja zwraca tablicę z wszystkimi permutacjami elementów danej 1-wymiarowej tablicy, lub -1 gdy wystąpił błąd. W tym wypadku makro @error przyjmuje wartość: 1 - $avArray nie jest tablicą, 2 - tablica nie jest 1-wymiarowa.
Komórka zwracanej tablicy o indeksie [0] zawiera ilość permutacji, pozostałe kolejne permutacje.
$avArray - nazwa przetwarzanej tablicy
$sDelim - znak separatora pomiędzy elementami kombinacji, domyślnie brak separatora
Przykład:
#include <Array.au3>
Local $aArray[4] = [1, 2, 3, 4]
$aNewArray = _ArrayPermute($aArray, ",")
_ArrayDisplay($aNewArray, "Tablica permutacji")
_ArrayReverse
[edytuj]#include <Array.au3> _ArrayReverse ( ByRef $avArray [, $iStart = 0 [, $iEnd = 0]] )
Funkcja odwraca kolejność komórek w 1-wymiarowej tablicy. Zwraca 1 gdy sukces, lub 0 gdy wystąpił błąd. W tym przypadku ustawiane jest makro @error: 1 - $avArray nie jest tablicą, 2 - $iStart > $iEnd, 3 - tablica nie jest 1-wymiarowa, 4 - tablica jest pusta.
$avArray - nazwa przetwarzanej tablicy
$iStart - początkowy indeks obszaru odwracania kolejności komórek, domyślnie 0 czyli od indeksu [0] (początek tablicy)
$iEnd - końcowy indeks obszaru odwracania kolejności komórek, domyślnie 0 czyli do końca tablicy
Przykład:
#include <Array.au3>
Local $avArray[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
_ArrayDisplay($avArray, "Tablica wyjściowa")
_ArrayReverse($avArray)
_ArrayDisplay($avArray, "_ArrayReverse()")
_ArrayReverse($avArray, 3, 6)
_ArrayDisplay($avArray, "Od indeksu 3 do 6")
_ArrayShuffle
[edytuj]#include <Array.au3> _ArrayShuffle ( ByRef $aArray [, $iStart_Row = 0 [, $iEnd_Row = 0 [, $iCol = 0]]] )
Funkcja tasuje losowo wiersze tablicy 1 lub 2-wymiarowej. Tasowanie może być ograniczone do podanego zakresu wierszy i wyszczególnionej kolumny. Zwraca 1 gdy sukces, lub -1 gdy wystąpił błąd. W tym przypadku makro @error przyjmie wartość: 1 - $aArray nie jest tablicą, 2 - $aArray ma więcej wymiarów niż 2, 3 - $iStart_Row lub $iEnd_Row po za zakresem, 4 - $iStart_Row większe od $iEnd_Row, 5 - $iCol po za zakresem.
$aArray - przetwarzana tablica, wynik działania funkcji będzie przez referencję w niej zapisany
$iStart_Row - nr początkowego wiersza
$iEnd_Row - nr końcowego wiersza
$iCol - nr tasowanej kolumny (tylko dla tablicy 2D)
Przykład:
#include <Array.au3>
Local $aArray_Base[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
_ArrayDisplay($aArray_Base, "1D - oryginalna", Default, 8)
Local $aArray = $aArray_Base
_ArrayShuffle($aArray)
_ArrayDisplay($aArray, "1D - tasowane", Default, 8)
$aArray = $aArray_Base
_ArrayShuffle($aArray, 3, 8)
_ArrayDisplay($aArray, "1D - tasowane 3-8 ", Default, 8)
Local $aArray_Base[10][10]
For $i = 0 To 9
For $j = 0 To 9
$aArray_Base[$i][$j] = $i
Next
Next
_ArrayDisplay($aArray_Base, "2D - oryginalna", Default, 8)
$aArray = $aArray_Base
_ArrayShuffle($aArray)
_ArrayDisplay($aArray, "2D - tasowane wszystkie wiersze", Default, 8)
$aArray = $aArray_Base
_ArrayShuffle($aArray, 3, 8, 2)
_ArrayDisplay($aArray, "2D - tasowane, kolumna 2, wiersze 3-8", Default, 8)
_ArraySort
[edytuj]#include <Array.au3> _ArraySort ( ByRef $avArray [, $iDescending = 0 [, $iStart = 0 [, $iEnd = 0 [, $iSubItem = 0 [, $iPivot = 0]]]]] )
Funkcja sortuje komórki 1D lub 2D tablicy. Zwraca 1 gdy sukces, lub 0 gdy wystąpił błąd. W tym przypadku ustawiane jest makro @error: 1 - $avArray nie jest tablicą, 2 - $iStart > $iEnd, 3 - $iSubItem większe niż największy indeks kolumny, 4 - tablica ma więcej niż 2 wymiary, 5 - tablica jest pusta, 6 - $iPivot użyto dla tablicy 2-wymiarowej.
$avArray - nazwa przetwarzanej tablicy
$iDescending - rodzaj sortowania, 0 - (domyślnie) sortowanie rosnące, 1 - sortowanie malejące
$iStart - początkowy indeks obszaru sortowanego, domyślnie 0 czyli od indeksu [0] (początek tablicy)
$iEnd - końcowy indeks obszaru sortowanego, domyślnie 0 czyli do końca tablicy
$iSubItem - indeks kolumny, która będzie sortowana w tablicy 2-wymiarowej
$iPivot - drugi element dzielący (pivot), domyślnie jeden element dzielący, komórka [0] (tylko dla tablic 1-wymiarowych)
UWAGA: Domyślnie funkcja używa algorytmu QuickSort. Ustawienie parametru $iPivot powoduje użycie algorytmu DualPivotSort dla tablic 1D. Może to znacznie przyśpieszyć sortowanie w przypadku dużych tablic (> 50 elementów). Niestety nie ma gwarancji, która metoda będzie szybsza dla konkretnego przypadku.
Przykład dla tablicy 1D:
#include <Array.au3>
Local $Array[] = [3, 4, 0, 6, 5, 8, 9, 2, 1, 7]
$avArray = $Array
_ArrayDisplay($avArray, "Tablica wyjściowa")
_ArraySort($avArray)
_ArrayDisplay($avArray, "Sortowanie rosnące")
$avArray = $Array
_ArraySort($avArray, 1)
_ArrayDisplay($avArray, "Sortowanie malejące")
$avArray = $Array
_ArraySort($avArray, 0, 3, 6)
_ArrayDisplay($avArray, "Rosnące od 3 do 6")
$avArray = $Array
_ArraySort($avArray, 0, 0, 0, 0, 1)
_ArrayDisplay($avArray, "Rosnące DualPivotSort")
Przykład dla tablicy 2D:
#include <Array.au3>
Local $avArray[][] = [[5, 20, 8], _
[4, 32, 7], _
[3, 16, 9], _
[2, 35, 0], _
[1, 19, 6]]
_ArrayDisplay($avArray, "$Tablica wyjściowa")
_ArraySort($avArray, 0, 0, 0, 0)
_ArrayDisplay($avArray, "Rosnąco kolumna [0]")
_ArraySort($avArray, 0, 0, 0, 1)
_ArrayDisplay($avArray, "Rosnąco kolumna [1]")
_ArraySort($avArray, 1, 0, 0, 2)
_ArrayDisplay($avArray, "Malejąco kolumna [2]")
_ArraySwap
[edytuj]#include <Array.au3> _ArraySwap ( ByRef $vItem1, ByRef $vItem2 )
Funkcja zamienia wartości dwóch zmiennych. Nie zwraca żadnej wartości.
$vItem1 i $vItem2 - zmienne zamieniające się wartościami. Zmiennymi tymi mogą być dwie tablice, komórki dwóch lub jednej tablicy, oraz zmienne proste.
Przykład - zamiana wartości dwóch tablic:
#include <Array.au3>
Local $avArray1[] = ["świecie!"]
Local $avArray2[] = ["Wtaj", "nasz"]
_ArrayDisplay($avArray1, "Tablica wyjściowa")
_ArraySwap($avArray1, $avArray2)
_ArrayDisplay($avArray1, "Tablica po zamianie")
Przykład - zamiana wartości dwóch komórek jednej tablicy:
#include <Array.au3>
Local $avArray[] = ["nasz", "Witaj", "świecie!"]
_ArrayDisplay($avArray, "Tablica wyjściowa")
_ArraySwap($avArray[0], $avArray[1])
_ArrayDisplay($avArray, "Tablica po zamianie")
_ArrayTranspose
[edytuj]#include <Array.au3> _ArrayTranspose ( ByRef $avArray )
Funkcja zamienia w tablicy 2-wymiarowej kolumny z wierszami. Zwraca 1 gdy sukces, lub 0 gdy wystąpił błąd (makro @error przyjmuje wartość 1, np. gdy tablica nie jest 2-wymiarowa).
$avArray - nazwa przetwarzanej tablicy
Przykład:
#include <Array.au3>
Local $aArray[][] = [[1, 2],[3, 4],[5, 6]]
_ArrayDisplay($aArray, "Tablica pierwotna")
_ArrayTranspose($aArray)
_ArrayDisplay($aArray, "Tablica wynikowa")
_ArrayTrim
[edytuj]#include <Array.au3> _ArrayTrim ( ByRef $avArray, $iTrimNum [, $iDirection = 0 [, $iStart = 0 [, $iEnd = 0]]] )
Funkcja usuwa określoną liczbę znaków z wszystkich elementów tablicy. Zwraca 1 gdy sukces, lub 0 gdy wystąpił błąd. W tym przypadku ustawiane jest makro @error: 1 - $avArray nie jest tablicą, 2 - tablica nie jest 1-wymiarowa, 3 - tablica jest pusta, 5 - $iStart > $iEnd.
$avArray - nazwa przetwarzanej tablicy
$iTrimNum - liczba znaków do usunięcia
$iDirection - kierunek usuwania, 0 - usuwa z lewej (wartość domyślna), 1 - usuwanie z prawej
$iStart - początkowy indeks obszaru usuwania znaków, domyślnie 0 czyli od indeksu [0] (początek tablicy)
$iEnd - końcowy indeks obszaru usuwania znaków, domyślnie 0 czyli do końca tablicy
Przykład:
#include <Array.au3>
Local $avArray[5]
$avArray[0] = "123"
$avArray[1] = "bc"
$avArray[2] = "cd"
$avArray[3] = "de"
$avArray[4] = "e"
_ArrayDisplay($avArray, "Tablica wyjściowa")
_ArrayTrim($avArray, 1, 1, 0, 4)
_ArrayDisplay($avArray, "Tablica po zmianie")
_ArrayUnique
[edytuj]#include <Array.au3> _ArrayUnique ( $aArray [, $iColumn = 1 [, $iBase = Default [, $iCase = Default [, $iFlags = Default]]]] )
Zwraca jednowymiarową tablicę z kolumny 1 lub 2-wymiarowej tablicy, usuwając wszystkie duplikaty. Jeżeli wystąpił błąd makro @error przyjmuje wartość: 1 - $avArray nie jest tablicą lub jest pustą tablicą, 2 - $iBase lub $iCase ma niewłaściwą wartość, 3 - niewłaściwa kolumna, 4 - $iFlags ma niewłaściwą wartość.
$avArray - nazwa przetwarzanej tablicy
$iColumn - nr kolumny do przetworzenia (dla tablic 2-wymiarowych), domyślnie 1 (indeks [0])
$iBase - przetwarzanie tablicy od komórki o indeksie: 0 - [0], 1 - [1]
$iCase - określa czy należy uwzględniać wielkość liter, 0 - nie (wartość domyślna, 1 - tak
$iFlags - flaga wskazuje, czy liczba zwracanych elementów powinny być zwrócone w komórce [0], 0 - nie, 1 - tak (domyślna wartość)
Przykład:
#include <Array.au3>
Local $aArray[] = [100, 200, 3, 4, 5, 1, 2, 3, "a", "A"]
_ArrayDisplay($aArray, "Tablica wyjściowa")
$aArrayUnique = _ArrayUnique($aArray,1,0,0,1)
_ArrayDisplay($aArrayUnique, "Tablica wynikowa")
_Array1DToHistogram
[edytuj]#include <Array.au3> _Array1DToHistogram ( $aArray [, $iSizing = 100] )
Funkcja przetwarza 1-wymiarową tablicę w histogram. Zwraca histogram w postaci 1-wymiarowej tablicy. Jeżeli wystąpi błąd makro @error przyjmie wartość różną od 0 (1 oznacza,że tablica nie była 1-wymiarowa).
$aArray - nazwa przetwarzanej tablicy
$iSizing - pozwala skalować histogram, 100 - rozmiar domyślny
Przykład:
#include <Array.au3>
Dim $aHist[] = [0, -80, -49, -44, 80, 99, 8, 7, 6, 5, 4, 3, 2, 1]
$aArray = _Array1DToHistogram($aHist, 200)
_ArrayDisplay($aArray, "_Array1DToHistogram")
_Array2DCreate
[edytuj]#include <Array.au3> _Array2DCreate ( $aArray1, $aArray2 )
Funkcja tworzy i zwraca nową dwuwymiarową tablicę, której elementami są dwie 1-wymiarowe lub 2-wymiarowe tablice. Jeżeli wystąpi błąd, to makro @error przyjmuje jedną z wartości:
1 - gdy któryś z parametrów nie jest tablicą 1-wymiarową lub 2-wymiarową 2 - gdy tablicę nie mają tego samedo rozmiaru wierszy 3 - gdy któryś z parametrów nie jest tablicą
$aArray1 - nazwa pierwszej tablicy 1-wymiarowej lub 2-wymiarowej
$aArray2 - nazwa drugiej tablicy 1-wymiarowej lub 2-wymiarowej
Przykład:
#include <Array.au3>
#include <Array.au3>
Local $aArray1[0], $aArray2[0] ;deklarowanie pustych tablic
_ArrayAdd($aArray1, "Wasta")
_ArrayAdd($aArray1, "AutoIt")
_ArrayAdd($aArray1, "I cała reszta")
_ArrayAdd($aArray2, 111)
_ArrayAdd($aArray2, 666)
_ArrayDisplay(_Array2DCreate($aArray1, $aArray2), "_Array2DCreate")
Blad(@error)
_ArrayAdd($aArray2, 999)
_ArrayDisplay(_Array2DCreate($aArray1, $aArray2), "_Array2DCreate")
Blad(@error)
Func Blad($nKod)
If $nKod<>0 Then
MsgBox(16,"Błąd, popraw!", "Kod błędu: " & $nKod)
Else
MsgBox(64,"Teraz było dobrze!", "Kod błędu: " & $nKod)
EndIf
EndFunc
Przeszukiwanie tablic
[edytuj]_ArrayBinarySearch
[edytuj]#include <Array.au3> _ArrayBinarySearch ( $avArray, $vValue [, $iStart = 0 [, $iEnd = 0]] )
Funkcja przeszukuje 1-wymiarową tablicę z użyciem algorytmy wyszukiwania binarnego. Zwraca indeks komórki z poszukiwaną wartością, lub -1 gdy wystąpił błąd. W tym przypadku makro @error przyjmuje wartość: 1 - $avArray nie jest tablicą, 2 - $vValue poza wartości Min / Max, 3 - w tablicy nie znaleziono wartości $vValue, 4 - $iStart > $iEnd, 5 - tablica nie jest 1-wymiarowa, 6 - tablica jest pusta.
$avArray - nazwa przeszukiwanej tablicy
$vValue - wartość poszukiwana w tablicy
$iStart - indeks komórki początkowej przeszukiwanego obszary tablicy, 0 - od indeksu [0] czyli początku tablicy (wartość domyślna)
$iEnd - indeks komórki końcowej przeszukiwanego obszary tablicy, 0 - do końca tablicy (wartość domyślna)
UWAGA:
1. Przed wyszukiwaniem binarnym tablica musi być posortowana!
2. Zwracany jest indeks pierwszej znalezionej komórki.
Przykład:
#include <Array.au3>
Local $avArray[] = [2, 3, 1, 0, 5 , 6, 8, 9, 5, 7, 1]
_ArrayDisplay($avArray, "Tablica wyjściowa")
; sortowanie tablicy, niezbędne przed wyszukiwaniem binarnym
_ArraySort($avArray)
_ArrayDisplay($avArray, "Tablica posortowana")
$x = 1 ; poszukiwany element
$iKeyIndex = _ArrayBinarySearch($avArray, $x)
If $iKeyIndex = -1 Then
MsgBox(0, "", "Nie znaleziono!")
Exit
Else
MsgBox(0, "", "Wartość " & $x & " pod indeksem " & $iKeyIndex)
EndIf
_ArrayFindAll
[edytuj]#include <Array.au3> _ArrayFindAll ( $avArray, $vValue [, $iStart = 0 [, $iEnd = 0 [, $iCase = 0 [, $iCompare = 0 [, $iSubItem = 0]]]]] )
Funkcja wyszukuje wszystkie komórki w tablicy 1 lub 2-wymiarowej, zawierające podaną wartość. Wynik zwraca w postaci 1-wymiarowej tablicy z indeksami znalezionych komórek. Jeżeli wystąpi błąd funkcja zwraca -1. W tym przypadku makro @error przyjmuje wartość: 1 - $avArray nie jest tablicą, 2 (7) - wymiar tablicy większy niż 2, 3 - tablica jest pusta, 4 - $iStart > $iEnd, 6 - w tablicy nie znaleziono wartości $vValue.
$avArray - nazwa przeszukiwanej tablicy
$vValue - wartość poszukiwana w tablicy
$iStart - indeks komórki początkowej przeszukiwanego obszary tablicy, 0 - od indeksu [0] czyli początku tablicy (wartość domyślna)
$iEnd - indeks komórki końcowej przeszukiwanego obszary tablicy, 0 - do końca tablicy (wartość domyślna)
$iCase - określa czy należy uwzględniać wielkość liter, 0 - nie (wartość domyślna), 1 - tak
$iCompare - określa sposób oceny zgodności wartości (wartość domyślna 0):
0 - zgodnie z przyjętym w AutoIt (np. jeżeli szukamy wartości 0 to: "string"=0, "1"=0, ""=0, False=0) 1 - wyszukuje wartości tekstowej wewnątrz zawartości komórki (np.: "obie"="kobiety") 2 - tylko gdy wartość i jej typ są identyczne (0=0, ale ""<>0)
$iSubItem - indeks kolumny, która będzie przeszukiwana w tablicy 2-wymiarowej
Przykład:
#include <Array.au3>
Local $avArray[5] = [0, 1, 2, 1, "Ala"]
Local $aiResult = _ArrayFindAll($avArray, 0)
_ArrayDisplay($avArray, "Tablica źródłowa")
_ArrayDisplay($aiResult, "Rezultat wyszukiwania")
_ArrayMax
[edytuj]#include <Array.au3> _ArrayMax ( $avArray [, $iCompNumeric = 0 [, $iStart = 0 [, $iEnd = 0]]] )
Funkcja zwraca największą wartość znajdującą się w tablicy, lub -1 gdy wystąpił błąd. W tym przypadku makro @error przyjmuje wartość: 1 - $avArray nie jest tablicą, 2 - $iStart > $iEnd, 3 - tablica nie jest 1-wymiarowa, 4 - tablica jest pusta
$avArray - nazwa przeszukiwanej tablicy
$iCompNumeric - metoda porównania wartości, 0 - porównanie alfanumeryczne (wartość domyślna), 1 - porównanie numeryczne
$iStart - indeks komórki początkowej przeszukiwanego obszary tablicy, 0 - od indeksu [0] czyli początku tablicy (wartość domyślna)
$iEnd - indeks komórki końcowej przeszukiwanego obszary tablicy, 0 - do końca tablicy (wartość domyślna)
Przykład:
#include <Array.au3>
Local $avArray = StringSplit("4,2,06,8,12,5,666", ",")
MsgBox(0, "Maksymalna wartość alfanumeryczna", _ArrayMax($avArray, 0, 1))
MsgBox(0, "Maksymalna wartość numeryczna", _ArrayMax($avArray, 1, 1))
_ArrayMaxIndex
[edytuj]#include <Array.au3> _ArrayMaxIndex ( $avArray [, $iCompNumeric = 0 [, $iStart = 0 [, $iEnd = 0]]] )
Funkcja zwraca indeks komórki zawierającej największą wartość, lub -1 gdy wystąpił błąd. W tym przypadku makro @error przyjmuje wartość: 1 - $avArray nie jest tablicą, 2 - $iStart > $iEnd, 3 - tablica nie jest 1-wymiarowa, 4 - tablica jest pusta
$avArray - nazwa przeszukiwanej tablicy
$iCompNumeric - metoda porównania wartości, 0 - porównanie alfanumeryczne (wartość domyślna), 1 - porównanie numeryczne
$iStart - indeks komórki początkowej przeszukiwanego obszary tablicy, 0 - od indeksu [0] czyli początku tablicy (wartość domyślna)
$iEnd - indeks komórki końcowej przeszukiwanego obszary tablicy, 0 - do końca tablicy (wartość domyślna)
Przykład:
#include <Array.au3>
Local $avArray = StringSplit("4,2,06,8,12,5,666", ",")
MsgBox(0, "_ArrayMaxIndex()", "Maksymalna wartość alfanumeryczna w komórce o indeksie: " & _ArrayMaxIndex($avArray, 0, 1))
MsgBox(0, "_ArrayMaxIndex()", "Maksymalna wartość numeryczna w komórce o indeksie: " & _ArrayMaxIndex($avArray, 1, 1))
_ArrayMin
[edytuj]#include <Array.au3> _ArrayMin ( $avArray [, $iCompNumeric = 0 [, $iStart = 0 [, $iEnd = 0]]] )
Funkcja zwraca najmniejszą wartość znajdującą się w tablicy, lub -1 gdy wystąpił błąd. W tym przypadku makro @error przyjmuje wartość: 1 - $avArray nie jest tablicą, 2 - $iStart > $iEnd, 3 - tablica nie jest 1-wymiarowa, 4 - tablica jest pusta
$avArray - nazwa przeszukiwanej tablicy
$iCompNumeric - metoda porównania wartości, 0 - porównanie alfanumeryczne (wartość domyślna), 1 - porównanie numeryczne
$iStart - indeks komórki początkowej przeszukiwanego obszary tablicy, 0 - od indeksu [0] czyli początku tablicy (wartość domyślna)
$iEnd - indeks komórki końcowej przeszukiwanego obszary tablicy, 0 - do końca tablicy (wartość domyślna)
Przykład:
#include <Array.au3>
Local $avArray = StringSplit("4,2,06,8,12,5,666", ",")
MsgBox(0, "Minimalna wartość alfanumeryczna", _ArrayMin($avArray, 0, 1))
MsgBox(0, "Minimalna wartość numeryczna", _ArrayMin($avArray, 1, 1))
_ArrayMinIndex
[edytuj]#include <Array.au3> _ArrayMinIndex ( $avArray [, $iCompNumeric = 0 [, $iStart = 0 [, $iEnd = 0]]] )
Funkcja zwraca indeks komórki zawierającej najmniejszą wartość, lub -1 gdy wystąpił błąd. W tym przypadku makro @error przyjmuje wartość: 1 - $avArray nie jest tablicą, 2 - $iStart > $iEnd, 3 - tablica nie jest 1-wymiarowa, 4 - tablica jest pusta
$avArray - nazwa przeszukiwanej tablicy
$iCompNumeric - metoda porównania wartości, 0 - porównanie alfanumeryczne (wartość domyślna), 1 - porównanie numeryczne
$iStart - indeks komórki początkowej przeszukiwanego obszary tablicy, 0 - od indeksu [0] czyli początku tablicy (wartość domyślna)
$iEnd - indeks komórki końcowej przeszukiwanego obszary tablicy, 0 - do końca tablicy (wartość domyślna)
Przykład:
#include <Array.au3>
Local $avArray = StringSplit("4,2,06,8,12,5,666", ",")
MsgBox(0, "_ArrayMaxIndex()", "Minimalna wartość alfanumeryczna w komórce o indeksie: " & _ArrayMinIndex($avArray, 0, 1))
MsgBox(0, "_ArrayMaxIndex()", "Minimalna wartość numeryczna w komórce o indeksie: " & _ArrayMinIndex($avArray, 1, 1))
_ArraySearch
[edytuj]#include <Array.au3> _ArraySearch ( $avArray, $vValue [, $iStart = 0 [, $iEnd = 0 [, $iCase = 0 [, $iCompare = 0 [, $iForward = 1 [, $iSubItem = -1]]]]]] )
Funkcja przeszukuje 1-wymiarową lub 2-wymiarową tablicę. Zwraca indeks komórki z poszukiwaną wartością, lub -1 gdy wystąpił błąd. W tym przypadku makro @error przyjmuje wartość: 1 - $avArray nie jest tablicą, 2 (7) - wymiar tablicy większy niż 2, 3 - tablica jest pusta, 4 - $iStart > $iEnd, 6 - w tablicy nie znaleziono wartości $vValue.
$avArray - nazwa przeszukiwanej tablicy
$vValue - wartość poszukiwana w tablicy
$iStart - indeks komórki początkowej przeszukiwanego obszary tablicy, 0 - od indeksu [0] czyli początku tablicy (wartość domyślna)
$iEnd - indeks komórki końcowej przeszukiwanego obszary tablicy, 0 - do końca tablicy (wartość domyślna)
$iCase - określa czy należy uwzględniać wielkość liter, 0 - nie (wartość domyślna), 1 - tak
$iForward - kierunek przeszukiwania, 0 - od końca do początku, 1 - od początku do końca (wartość domyślna)
$iSubItem - indeks kolumny, która będzie przeszukiwana w tablicy 2-wymiarowej
UWAGA:
1. Funkcja jest podobne do _ArrayBinarySearch(), z tym, że tablica nie musi być posortowana oraz może być 2-wymiarowa.
2. Zwracany jest indeks pierwszej znalezionej komórki.
Przykład dla tablicy 1D:
#include <Array.au3>
Local $avArray[] = [1, 2, 3, 4, 5, 0, 9, 8, 7, 6]
_ArrayDisplay($avArray, "Tablica przeszukiwana")
$sSearch = InputBox("_ArraySearch() demo", "Wartość do znalezienia")
$iIndex = _ArraySearch($avArray, $sSearch, 0, 0, 0, 1)
If @error Then
MsgBox(0, "Wynik wyszukiwania", "Wartości: " & $sSearch & " nie ma w tablicy")
Else
MsgBox(0, "Wynik wyszukiwania", "Wartości: " & $sSearch & " znaleziono pod indeksem: " & $iIndex)
EndIf
Przykład dla tablicy 2D:
#include <Array.au3>
Local $avArray[][] = [["A0", "B0"], _
["A1", "B1"], _
["A2", "B2"], _
["A3", "B3"], _
["A4", "B4"], _
["A5", "B5"]]
_ArrayDisplay($avArray, "$avArray")
$sSearch = InputBox("_ArraySearch() demo", "Wartość do odszukania")
$sColumn = InputBox("_ArraySearch() demo", "Kolumna do przeszukania")
$sColumn = Int($sColumn)
$iIndex = _ArraySearch($avArray, $sSearch, 0, 0, 0, 1, 1, $sColumn)
If @error Then
MsgBox(0, "Wynik wyszukiwania", "Wartości: " & $sSearch & _
" w kolumnie " & $sColumn & " nie znaleziono")
Else
MsgBox(0, "Wynik wyszukiwania", "Wartość: " & $sSearch & _
" w kolumnie: " & $sColumn & " znaleziono pod indeksem " & $iIndex)
EndIf
Eksport danych z tablicy i import do tablicy
[edytuj]_ArrayToClip
[edytuj]#include <Array.au3> _ArrayToClip ( $avArray [, $iStart = 0 [, $iEnd = 0]] )
Funkcja wysyła zawartość tablicy do schowka systemowego, zawartość kolejnych komórek rozdzielona jest znakiem powrotu karetki (@CR). Zwraca 1 gdy sukces, lub 0 gdy wystąpił błąd.
$avArray - nazwa tablicy
$iStart - początkowy indeks obszaru eksportowanego, domyślnie 0 czyli od indeksu [0] (początek tablicy)
$iEnd - końcowy indeks obszaru eksportowanego, domyślnie 0 czyli do końca tablicy
Przykład:
#include <Array.au3>
Local $avArray = StringSplit("a,b,c,d,e,f,g,h,i", ",")
_ArrayToClip($avArray, 1)
MsgBox(0, "_ArrayToClip() Test", ClipGet())
_ArrayToString
[edytuj]#include <Array.au3> _ArrayToString ( $avArray [, $sDelim = "|" [, $iStart = 0 [, $iEnd = 0]]] )
Funkcja umieszcza elementy tablicy w jednym łańcuchu znaków oddzielonych określonym separatorem i zwraca ten łańcuch (string). Jeżeli wystąpi błąd makro @error przyjmie wartość: 1 - $avArray niejest tablica, 2 - $iStart > $iEnd, 3 - tablica nie jest 1-wymiarowa, 4 - tablica jest pusta.
$avArray - nazwa tablicy
$sDelim - separator, domyślnie znak pionowej kreski (|)
$iStart - początkowy indeks obszaru eksportowanego, domyślnie 0 czyli od indeksu [0] (początek tablicy)
$iEnd - końcowy indeks obszaru eksportowanego, domyślnie 0 czyli do końca tablicy
Przykład:
#include <Array.au3>
Local $avArray[0]
For $i = 0 To 20
_ArrayAdd($avArray, Random(-2000, 2000, 1))
Next
_ArrayDisplay($avArray, "Tablica źródłowa")
$str = _ArrayToString($avArray, @CR, 1, 7)
MsgBox(0,"_ArrayToString()", "Wyeksportowano:" & @CR & $str)
_ArrayFromString
[edytuj]#include <Array.au3> _ArrayFromString ( $sArrayStr [, $sDelim_Col = "|" [, $sDelim_Row = @CRLF [, $bForce2D = False [, $iStripWS = $STR_STRIPLEADING + $STR_STRIPTRAILING]]]] )
Funkcja rekonstruuje tablicę ze stringu utworzonego przez _ArrayToString() lub _SQLite_Display2DResult().
$sArrayStr - string sformatowany przez _ArrayToString() lub _SQLite_Display2DResult()
$sDelim_Col - separator, domyślnie znak pionowej kreski (|)
$sDelim_Row - domyślnie @CRLF
$bForce2D - wartość domyślna to False. True wymusi tablicę 2-wymiarową, nawet jeśli jest 1-wymiarowa.
$iStripWS - wartość domyślna to 3. To jest flaga dla StringStripWS(). Ustaw na zero, aby wyłączyć.
Przykład:
#include <Array.au3>
$aArray = _ArrayFromString("1|2|AutoIt is the best|" & @AutoItVersion & "|" & @OSVersion)
_ArrayDisplay($aArray, "_ArrayFromString")