Autoit Array komutu kullanımı

Autoit Array komutu kullanımı

Bu örnekte array komutu komutunu inceleyeceğiz.array komutu komutu nerede kullanılır ve Autoit array [dizi] ne şekilde kullanılır,örneklerimiz Bu konu üzerinde olacaktır.Array [dizi] türevi Komutları anlatmaya başlamadan önce array [dizi] nedir,ve array [dizi] listesi nasıl oluşturulur Bunun üzerinde duralım.bir ayraç kullanarak(":",@CRLF," ","","@CR","a","3") cümleyi ya da veriyi istediğimiz belirlediğimiz ayracı kullanarak böldükten sonra bu parçalama ve bölme sonrasında ortaya çıkan Metin ya da veri parçacıkları basamaklandırılmış bir liste halinde array [dizi] içerisine yerleştirilir.bu yerleşim veya dizilim den sonra birinci kelime ya da veri $array[1] olarak belirlenir.ve bundan sonraki dizi değerleri de liste içerisinde sırasıyla basamaklandırılmış olur.bir dizideki parçacıkların(ya da veri ) miktarı $array[0] içerisinde saklanır.yani $array içerisinde kaç adet parçacık olduğunu $array[0] içeriği ile tamamlamış oluruz ve bu komutla alakalı kullanacağımız diğer Komutları da bu belirlediğimiz içeriye göre yönlendiririz. array [dizi] komutunu sıklıkla StringSplit() ile parçalanan,bölünen bir metni Ya da veriyi bir tablo halinde bir dizi,liste oluşturup bu oluşturulan liste ile işlem yapmak için kullanacağız.Örneğin basit bir cümleyi boşluklardan bölerek ortaya çıkan kelimeleri _ArrayDisplay() [Dizi göster] komutuyla ekranda göreceğiz.tek ya da çift boyutlu array komutu listeleri oluşturulabilir.
#Include <Array.au3>
$arr="Bu kelime boşluk karakterinden bölünecektir."
$arr=stringsplit($arr," ")
_ArrayDisplay($arr)
 

Autoit _ArrayDisplay() komutu kullanımı

Yukarıdaki örnekte bir cümleyi ya da veriyi istediğimiz karakterlerden parçalayarak bir array [dizi] oluşturduk ve oluşturulan bu array [dizi] bir değişken içerisine aktarıldı.artık değişken içeriğinde bir dizi ya da liste mevcuttur oluşturulan Listenin uzunluğuna göre basamak değeri artar.Yukarıdaki örnekte _ArrayDisplay() [Dizi göster] komutu ile oluşturduğunuz istediğin içeriğini görebilirsiniz.daha sonra oluşturduğumuz bu dizi listesini bir for Next döngüsü kullanarak çeşitli işlemlerde kullanabiliriz.

Autoit _arraydisplay() komutu

#Include <Array.au3>
#Include <Misc.au3>
 $a=0
 
While 1
 
    if _IsPressed("01") then ; sol mouse tuşu basılırsa
       $pos=MouseGetPos()
 $a=$a+1
 FileWrite("mouse.txt",$pos[0]&","&$pos[1]&":") ; ayıraç olarak ":" kullanıldı
 if $a=2 then
	simule()
filedelete("mouse.txt") ; txt dosyasını sil
	Exit
EndIf
EndIf
 
 
Sleep(50)
WEnd
 
Func simule()
   $koordinatlar=FileRead("mouse.txt")
   $koordinatlar=StringTrimRight($koordinatlar,1)
   $koordinatlar=StringSplit($koordinatlar,":") ; ayıraç : işaretidir
_ArrayDisplay($koordinatlar)
   for $k=1 to $koordinatlar[0] ; liste uzunluğu $koordinatlar[0] da yazılıdır.
	  $m=StringSplit($koordinatlar[$k],",") ; mouse koordinatlarını "," işaretinden böl
	  _ArrayDisplay($m) ; 
	  MouseMove($m[1],$m[2])
	  Next
   EndFunc
 
 
Yukarıdaki Autoit örnek programımız da Mouse tıklama larına bir dosyayı kaydedip daha sonra bu Mouse tıklama işlemlerini simüle eden bir program yazdık.örnekte görüldüğü gibi tıkladığımız Mouse koordinatları önce bir txt dosyasına kaydedildi Daha sonra ise bu dosyada geri çağrılarak StringSplit komutu ile bölünerek bir array [dizi] oluşturuldu ve bu oluşturulan dizideki tüm basamakları işlem yapıldı. Yukarıdaki programı biraz daha açacak olursak önce koşulsuz bir döngü başlattık ve daha sonra Mouse sol tuşuna basıldığında $pos değişkeni içerisinde Mouse X ve Y koordinatları aktarıldı ve FileWrite() [ Dosya Yazma ] komut ile txt dosyamızın içine tıkladığımız koordinatları yazdırdık.dikkat ederseniz koordinatları yazdırdıktan sonra daha sonra dosyadan bu koordinatları alırken sıkıntı yaşamamak için ayıraç olarak ":" kullandık ve Mouse tıklaması sonrasında program simüle fonksiyonda gidecek.bu fonksiyonda ise dosya kaydettiğimiz verileri $koordinatlar değişkeni içerisinde aktardık.her Mouse tıklama sından sonra ":" kullandığımız için burada da yine ayıraç olarak ":" işaretini kullandık ve _ArrayDisplay() [Dizi göster] komutuyla tıklamış olduğumuz Mouse koordinatlarını liste halinde gördük.bir sonraki satırda işte bir for Next döngüsü ile koordinat listesi uzunluğunda yani ne kadar tıklama yaptıysak O miktarda bir döngü başlattık.artık dizinde Mouse x,y koordinatları olduğu için bu koordinatları birbirinden ayırmak için lise "," ayracını kullandık ve daha sonra MouseMove komutu ile simüle işlemi tamamlanmış oldu.

Autoit _ArrayAdd [array ekle] komutu kullanımı

 
#Include <Array.au3>
_ArrayAdd ( ByRef $aArray, $vValue [, $iStart = 0 [, $sDelim_Item = "|" [, $sDelim_Row = @CRLF [, $iForce = $ARRAYFILL_FORCE_DEFAULT]]]] )
 
$aArray ile ekleme yapacağımız array [dizi] seçiyoruz $vValue ile array'a eklenecek olan veriyi değişkeni yada metni belirliyoruz Diğer parametreler yani dizinin neresinden ekleme yapılacağı, ayıraçlar isteğe bağlı olarak kullanılmaktadır. Normalde _arrayAdd() komutu diğer parametreler olmadan kullanıldığında dizinin (array) sonuna ekler.
 
#Include <Array.au3>
 
$a=""
 for $ka=1 to 5
	$a&=$ka ;sayılar $a içeriğinde toplanır. 
 Next
 $a=StringSplit($a,"") ;array her karakterden parçalanır
 _ArrayAdd($a,"altı")  ; dizinin 6ncı basamak değeri eklendi
$a[0]=$a[0]+1  ; $a[0] ın içeriği dizin miktarı bir arttırıldı. çünkü diziye ekleme yaptık
  _ArrayDisplay($a)
 

Autoit _arrayAdd() komutu

Autoit _ArrayInsert [array ilave] komutu kullanımı

 
#Include <Array.au3>
 
$a=""
 for $ka=1 to 5
	$a&=$ka ;sayılar $a içeriğinde toplanır. 
 Next
 $a=StringSplit($a,"") ;array her karakterden parçalanır
 _ArrayInsert($a,2,"iki")  ; dizinin 2nci basamak değeri değiştirildi
$a[0]=$a[0]+1  ; $a[0] ın içeriği dizin miktarı bir arttırıldı. çünkü diziye ekleme yaptık
  _ArrayDisplay($a)
 
_ArrayInsert() komutu bir dizi içerisindeki sütun (basamak) ları değiştirmek için kullanılır. girilecek değer veri/değişken olabilir. ayrıca çoklu değiştirme işlemi de yapılabilir. bu çoklu değiştirme için bir değişken kullanılarak değiştirilecek basamaklar tanımlanır. Aşağıdaki _ArrayInsert örnek kodunu inceleyelim.
 
#Include <Array.au3>
 
 
$a=""
Local $sutunlar = "2;5;7;7"
Local $insert = "a|b|c|d"
 for $ka=1 to 7
	$a&=$ka ;sayılar $a içeriğinde toplanır. 
 Next
 $a=StringSplit($a,"") ;array her karakterden parçalanır
 _ArrayInsert($a,$sutunlar,$insert )  ; Yukarıda $sutunlar ile tanımladığımız basamaklar/aralıklar değiştirildi. 
  _ArrayDisplay($a)
 
Görüldüğü gibi işlem yapılacak satırın öncesine veri eklenmiş oldu. ve gerçek satır bir alta kaydırıldı.

Autoit _ArrayDelete [array sil] komutu kullanımı

 
#Include <Array.au3>
 
$a=""
Local $sutunlar = "2;5-7;9"
Local $insert = "a|b|c|d"
 for $ka=1 to 7
	$a&=$ka ;sayılar $a içeriğinde toplanır. 
 Next
 $a=StringSplit($a,"") ;array her karakterden parçalanır
 _ArrayInsert($a,$sutunlar,$insert )  ; Yukarıda $sutunlar ile tanımladığımız basamaklar/aralıklar değiştirildi. 
  _ArrayDisplay($a)
_ArrayDelete($a,$sutunlar ) ;$sutunlar ile gösterdiğimiz sütun/basamak ları siler
 
Yapmamız gereken tek şey silmek istediğimiz sutunu işaretlemektir. sütun numası tekil olarak da girilebilir. örn.
 
#Include <Array.au3>
 
$a=""
 for $ka=1 to 7
	$a&=$ka ;sayılar $a içeriğinde toplanır. 
 Next
 $a=StringSplit($a,"") ;array her karakterden parçalanır
_ArrayDelete($a,"2") ;
 
yada ;
 
#Include <Array.au3>
 
$a=""
 for $ka=1 to 9
	$a&=$ka ;sayılar $a içeriğinde toplanır.
 Next
 $a=StringSplit($a,"") ;array her karakterden parçalanır
for $ka=9 to 1 step -1
_ArrayDelete($a,$ka) ;
  _ArrayDisplay($a)
  Next
 

Autoit _ArrayExtract [array kes] komutu kullanımı

2D (2 boyutlu) arraylarda belli bir satır-sütun aralığını kesip almak ve işlem yapmak için kullanılır. kesilen array içeriği bir değişkene atanır. çok sık kullanılacağını sanmıyorum.
 
#Include <Array.au3>
 
Local $aArray[4][4]
For $i = 0 To 3
    For $j = 0 To 3
        $aArray[$i][$j] = $i & $j
    Next
Next
_ArrayDisplay($aArray, "Original")
Local $cikartilan = _ArrayExtract($aArray, 1, 2, 2, 3)
_ArrayDisplay($cikartilan , "Satır 1-2 Sütun 2-3")
 

Autoit _ArrayToString [array kelimeye çevir] komutu kullanımı

 
#Include <Array.au3>
  Local $aPos = WinGetPos("[ACTIVE]")
$aPos=_ArrayToString($aPos)
ConsoleWrite($aPos)
 
yukarıdaki örnekte aktif olan pencerenin x-y baslangıc ve x-y bitiş koordinatlarını aldık ve bunları bir değişken içerisine aktardık. $aPos=wingetpos komutuyla bir array oluşturuldu ve array sutunlarındaki bu dört koordinatı string (kelime dizilimi) dönüştürmek için _arraytostring() komutunu kullandık. Artık $aPos değişkenimizin içeriginde "175|71|1022|865" değeri mevcuttur. Bu _arraytostring komutunu sıklıkla kullanacaksınız. mousegetpos ve wingetpos gibi komutlar kullanıldığında otomatik olarak bir array() oluşturulurmuştur.

Autoit _ArrayToClip [array panoya kopyala] komutu kullanımı

 
#Include <Array.au3>
  Local $aPos = WinGetPos("[ACTIVE]")
_ArrayToClip($aPos)
 
Yukarıdaki komut satırları çalıştırıldığında artık panoda (kopyalanmış olarak) "175|71|1022|865" değerleri yani aktif pencerenin koordinatları mevcuttur. crtl-v tuşlarına bastığımızda bu değer ekrana yapıştırılır.

Autoit _ArrayShuffle [array dizilimi/sütunları karıştır] komutu kullanımı

 
#Include <Array.au3>
_ArrayShuffle ( ByRef $aArray [, $iStart_Row = 0 [, $iEnd_Row = 0 [, $iCol = -1]]] )
 
Parametreler__________________:
$AArray değiştirilecek dizin. 
$IStart_Row [isteğe bağlı] Karıştırma için başlangıç satırı - ilk önce varsayılan
$IEnd_Row [isteğe bağlı] Karıştırma için bitiş satırı - varsayılan son
$ICol [isteğe bağlı] Karışıklık için özel sütun (yalnızca 2D)
 
Eğer array (dizi) içeriğini random hale getirmek istersek yani array verilerinin yerlerini değiştirmek istersek bu komutu Autoit _ArrayShuffle komutunu kullanıyoruz. Autoit _ArrayShuffle komutu kullanırken gerekli olan paramatre array adıdır. diğer parametreler opsiyonel olarak girilebilir. Aşağıdaki Autoit _ArrayShuffle komutu örnek kodunu incelersek bu komutun çalışmasına dair daha net sonuçlar alabiliriz.
 
#Include <Array.au3>
 
Local $aArray_Base[10] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
_ArrayDisplay($aArray_Base, "1D - Orjinal dizilim", Default, 8)
 
Local $aArray = $aArray_Base
_ArrayShuffle($aArray)
_ArrayDisplay($aArray, "1D - Karıştırıldıktan sonra", Default, 8)
 
$aArray = $aArray_Base
_ArrayShuffle($aArray, 3, 8)
_ArrayDisplay($aArray, "1D - Karıştırılan aralık - 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 - Orjinal dizilim", Default, 8)
 
$aArray = $aArray_Base
_ArrayShuffle($aArray)
_ArrayDisplay($aArray, "2D - Karıştırılmış dizilim - Bütün satırlar", Default, 8)
 
$aArray = $aArray_Base
_ArrayShuffle($aArray, 3, 8, 2)
_ArrayDisplay($aArray, "2D - Karıştırılmış dizilim - Sütun 2 ve 3-8 aralığı", Default, 8)
 

Autoit _ArraySort [array dizi sırala] komutu kullanımı

 
#Include <Array.au3> 
_ArraySort ( ByRef $aArray [, $iDescending = 0 [, $iStart = 0 [, $iEnd = 0 [, $iSubItem = 0 [, $iPivot = 0]]]]] )
 
 
Parametreler__________________:
$ AArray Sıralama yapılacak dizi / $array
$ IDescending [isteğe bağlı] 1'e ayarlanırsa, azalan düzende sıralar
$ IStart [isteğe bağlı] Sıralama işlemini başlatmak için dizinin dizini (varsayılan 0 = ilk öğe veya satır)
$ IEnd [isteğe bağlı] Sıralama işlemini durduracak dizinin dizini (varsayılan 0 = son öğe veya satır)
$ ISubItem [isteğe bağlı] 2D dizilerinde sıralamak için alt dizin (varsayılan 0 = ilk sütun)
$ IPivot [isteğe bağlı] Pivot sıralama algoritmasını kullan (varsayılan = quicksort)
 
array içerisindeki sayıları artan yada azalan şekilde sıralatmaya yarayan bir komuttur. Autoit _ArraySort [dizi sırala] komutu temelde 2 parametreye ihtiyac duyar. bunlardan ilki işlem yapılacak dizi/array iken ikincisi ise sıralamanın artan mı azalan mı olduğu yönündedir. 2. paramatre girilmezse default olarak artan dizi sıralaması yapılır. Autoit _ArraySort [dizi sırala] komutu örnek kodlarını inceleyelim.
 
#Include <Array.au3> 
 
Local $avArray[10] = [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
_ArrayDisplay($avArray, "Orjinal sayı dizilimi ()")
_ArraySort($avArray) ;default ayar artan 
_ArrayDisplay($avArray, "Artan sayı dizilimi ")
_ArraySort($avArray, 1) ;1 girildi azalan sıraya göre dizilim yapacak
_ArrayDisplay($avArray, "Azalan sayı dizilimi")
_ArraySort($avArray, 0, 3, 6) ;3 ve 6ncı satırlar arasında sıralama işlemi yapar. diğer satırlar göz ardı edilir. 
_ArrayDisplay($avArray, "3 ve 6ncı satırlar arasında işlem yapıldı")
_ArraySort($avArray, 0, 0, 0, 0, 1)
_ArrayDisplay($avArray, "DualPivotSort stili artan dizilim")
 

Autoit _ArrayPush [array satır ilave et ve satır sil] komutu kullanımı

_ArrayPush() [diziye satır ekle] komutuyla array size/büyüklüğünü arttırmadan dizine,dizinin başına ya da sonuna bir satır eklerken dizinden de bir satır silinir.yani dizi içerisine yeni satır eklenirken dizi büyüklüğü ise sabit kalır bu komutunun parametreleri modifiye edilerek _ArrayPush() [diziye satır ekle] komutu ile diziye eklenecek değişken ya da Metin belirlenir ve son parametrede ise dizinin başına mı yoksa sonuna mı ekleneceği belirlenir.her bir yeni satır eklendiğinde daha önceki dizi satırları eklenme doğrultusunda ileri yada geri Kayar.
 
#Include <Array.au3> 
_ArrayPush ( ByRef $aArray, $vValue [, $iDirection = 0] )
 
Parametreleri
$AArray değiştirilecek array-dizi
$VValue Eklenecek değer (ler) (bir dizide olabilir)
$IDirection [isteğe bağlı] Varolan dizi öğelerini itme yönü:
$IDirection= 0  Sola kayar (sonunda eklenir)
$IDirection= 1  Sağa kaydırın (başa ekleme yapar)
 
aşağıdaki Autoit _ArrayPush() [diziye satır ekle] örnek kodlarına bir göz atalım.
 
#Include <Array.au3> 
 
Local $avArrayTarget[9] = [1, 2, 3, 4, 5, 6, 7, 8, 9]
Local $avArraySource[2] = [100, 200]
 
_ArrayDisplay($avArrayTarget, "$avArrayTarget Orjinal dizi ()")
_ArrayPush($avArrayTarget, $avArraySource)
_ArrayDisplay($avArrayTarget, "Sona veri ekleme ")
_ArrayPush($avArrayTarget, $avArraySource, 1) ;$IDirection=1 oldu
_ArrayDisplay($avArrayTarget, "Dizi başına veri ekleme")
_ArrayPush($avArrayTarget, "Hello world!", 1)
_ArrayDisplay($avArrayTarget, "Dizi başına metin ekleme")
 

Autoit _ArrayPop [array - dizi son satırı sil] komutu kullanımı

 
#Include <Array.au3> 
_ArrayPop ( ByRef $aArray )
 
Parametreleri
$AArray ile değiştirilecek dizi seçilir
 
Dönüş Değeri
Başarı: dizinin son öğesi silinir ve dizi büyüklüğü bir azalır (açıklamalara bakın).
Başarısızlık: @ error bayrağını sıfırdan farklı bir değere ayarlar.
@error: 1 - Giriş Bir dizi olmalı
@error: 2 - $ aArray bir dizi değildir. 
@error: 3 - $ aArray boş
 
Autoit ArrayPoP() [dizi son satır sil] komutu array -dizi- içerisinde son satıra işlem yapmak için kullanılır Aslında bu komut dizi son satırını silerken dizi büyüklüğünü de bir azaltır buradaki pop kelimesi satırı diziden çıkarmak anlamında kullanılmıştır ve dizi büyüklüğü ise her defasında bir azalır.
 
#Include <Array.au3> 
#include <MsgBoxConstants.au3>
 
Local $avArray[10]  ;dzii içeriği on satırdır
 
$avArray[0] = "JPM"
$avArray[1] = "Holger"
$avArray[2] = "Jon"
$avArray[3] = "Larry"
$avArray[4] = "Jeremy"
$avArray[5] = "Valik"
$avArray[6] = "Cyberslug"
$avArray[7] = "Nutster"
$avArray[8] = "JdeB"
$avArray[9] = "Tylo"
 
_ArrayDisplay($avArray, "ArrayPoP komutundan önceki dizi")
While UBound($avArray)
    MsgBox($MB_SYSTEMMODAL, '_ArrayPop() ile çıkartılan satır', _ArrayPop($avArray))
    _ArrayDisplay($avArray, "Çıkartıldıktan sonraki dizi")
 
h1>Autoit _ArrayReverse [array - dizi ters çevir] komutu kullanımı
 
#Include <Array.au3> 
_ArrayReverse ( ByRef $aArray [, $iStart = 0 [, $iEnd = 0]] )
 
Parametreleri
$AArray ile değiştirilecek dizi seçilir
$IStart [isteğe bağlı] Düzenlemeye başlamak için dizi satırı
$IEnd [isteğe bağlı] Düzenlemeyi durdurmak için dizi satırı
 
Autoit _ArrayReverse()[array - dizi ters çevir] komutu ise dizi sıralamasını mevcut şeklinin tam tersi doğrultuda sıralar.$IStart ve $IEnd parametreleri isteğe bağlı olarak kullanılabilir. strong> Autoit _ArrayReverse()[array - dizi ters çevir] örnek kodlarını inceleyelim.
 
#Include <Array.au3> 
 
Local $avArray=StringSplit("abcdefghijklmn","")
_ArrayDisplay($avArray, "Ters çevirmeden önce dizilim()")
_ArrayReverse($avArray)
_ArrayDisplay($avArray, "Ters çevirdikten sonra()")
_ArrayReverse($avArray, 3, 6)
_ArrayDisplay($avArray, "Satır aralığı ters çevrimi")
 

Kategoriler: 

Etiketler: 

Yeni yorum ekle

Filtered HTML

  • Web sayfası ve e-posta adresleri otomatik olarak bağlantıya çevrilir.
  • İzin verilen HTML etiketleri: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Satır ve paragraflar otomatik olarak bölünür.

Plain text

  • Hiç bir HTML etiketine izin verilmez
  • Web sayfası ve e-posta adresleri otomatik olarak bağlantıya çevrilir.
  • Satır ve paragraflar otomatik olarak bölünür.
CAPTCHA
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.
Resimli CAPTCHA
Resimde görünen karakterleri girin.