V
VitAl2013
Гость
Вот и весь вопрос.
#include <Array.au3>
Dim $avArray[5][2] = [ _
[1, 'бло'], _
[2, 'бля'], _
[3, 'бла-бла'], _
[4, 'бл-бл'], _
[5, 'бла-бла']]
_ArrayDisplay($avArray)
For $i=UBound($avArray,1)-1 To 0 Step -1
If $avArray[$i][1] <> 'бла-бла' Then _ArrayDelete($avArray, $i)
Next
_ArrayDisplay($avArray)
#include <Array.au3>
Dim $avArray[5][2] = [ _
[1, 'бло'], _
[2, 'бля'], _
[3, 'бла-бла'], _
[4, 'бл-бл'], _
[5, 'бла-бла']]
_ArrayDisplay($avArray, "1")
_ArrayCut($avArray, "бла-бла")
_ArrayDisplay($avArray, "2")
func _ArrayCut($array, $whatleave)
For $i=UBound($array,1)-1 To 0 Step -1
If $array[$i][1] <> $whatleave Then _ArrayDelete($array, $i)
Next
EndFunc
Почему не работает?
#include <Array.au3>
Dim $avArray[5][2] = [ _
[1, 'бло'], _
[2, 'бля'], _
[3, 'бла-бла'], _
[4, 'бл-бл'], _
[5, 'бла-бла']]
_ArrayDisplay($avArray, "1")
_ArrayCut( "бла-бла",$avArray)
_ArrayDisplay($avArray, "2")
func _ArrayCut( $whatleave ,ByRef $array )
For $i=UBound($array,1)-1 To 0 Step -1
If $array[$i][1] <> $whatleave Then
_ArrayDelete($array, $i)
EndIf
Next
EndFunc
_ArrayDisplay($avArray, "1")
$avArrayBackUp = $avArray
_ArrayCut( "бла-бла",$avArray)
_ArrayDisplay($avArray, "2")
$avArray = $avArrayBackUp
_ArrayCut( "бля",$avArray)
_ArrayDisplay($avArray, "2")
#include <Array.au3>
Dim $avArray[5][2] = [ _
[1, 'бло'], _
[2, 'бля'], _
[3, 'бла-бла'], _
[4, 'бл-бл'], _
[5, 'бла-бла']]
Local $result
_ArrayDisplay($avArray, "1")
$bla_bla = _ArrayCut( "бла-бла",$avArray)
_ArrayDisplay($bla_bla, "2")
func _ArrayCut( $whatleave ,ByRef $array )
For $i=UBound($array,1)-1 To 0 Step -1
If $array[$i][1] <> $whatleave Then
_ArrayAdd($result, $i)
EndIf
Next
return $result
EndFunc
#include <Array.au3>
Dim $avArray[5][2] = [ _
[1, 'бло'], _
[2, 'бля'], _
[3, 'бла-бла'], _
[4, 'бл-бл'], _
[5, 'бла-бла']]
Dim $result[1]
_ArrayDisplay($avArray, "1")
$bla_bla = _ArrayCut( "бла-бла",$avArray)
_ArrayDisplay($bla_bla, "2")
func _ArrayCut( $whatleave ,ByRef $array )
For $i=UBound($array,1)-1 To 0 Step -1
If $array[$i][1] = $whatleave Then
_ArrayAdd($result, $array[$i][1])
EndIf
Next
return $result
EndFunc
#include <Array.au3>
Dim $aNewArray[1][2]
Dim $avArray[5][2] = [ _
[1, 'бло'], _
[2, 'бля'], _
[3, 'бла-бла'], _
[4, 'бл-бл'], _
[5, 'бла-бла']]
Global $j
_ArrayDisplay($avArray)
For $i=UBound($avArray,1)-1 To 0 Step -1
If $avArray[$i][1] = 'бла-бла' Then
Redim $aNewArray[UBound($aNewArray,1)+1][2]
$j+=1
$aNewArray[$j][1]=$avArray[$i][1]
EndIf
Next
_ArrayDisplay($aNewArray)
У меня вроде получилось
_ArrayAdd
#include <Array.au3>
Dim $avArray[5][2] = [ _
[1, 'бло'], _
[2, 'бля'], _
[3, 'бла-бла'], _
[4, 'бл-бл'], _
[5, 'бла-бла']]
Dim $array_new[1][2]
_ArrayDisplay($avArray, "1")
$bla_bla = _ArrayCut( "бла-бла",$avArray)
_ArrayDisplay($bla_bla, "2")
func _ArrayCut( $whatleave ,ByRef $array_old)
For $i=UBound($array_old,1)-1 To 0 Step -1
If $array_old[$i][1] = 'бла-бла' Then
Redim $array_new[UBound($array_new,1)+1][2]
$j=+1
$array_new[$j][0]=$array_old[$i][0]
$array_new[$j][1]=$array_old[$i][1]
EndIf
Next
return $array_new
EndFunc
#Include <Array.au3>
#Include <WinAPIEx.au3>
Dim $result[1]
$whatleave = "Button"
$hForm = WinGetHandle("Ad Muncher Configuration")
$array = _WinAPI_EnumChildWindows($hForm)
If IsArray($array) Then
_ArraySort($array, 0, 1, 0, 1)
_ArrayDisplay($array, '_WinAPI_EnumChildWindows')
EndIf
_ArrayCut($whatleave, $array)
_ArrayDisplay($result)
Func _ArrayCut($whatleave, ByRef $array)
$u = 0
For $i = UBound($array, 1) - 1 To 0 Step -1
If $array[$i][1] = $whatleave Then
_ArrayAdd($result, $array[$i][1] & " - " & $array[$i][0])
$u += 1
$result[0] = $u
EndIf
Next
Return $result
EndFunc ;==>_ArrayCut
_ArrayAdd($result, $array[$i][0])
Dim $result[1]
Здесь все работает:Смущает что вначале и в конце есть пустые элементы массива. Как они получаются? и да... не работает - находит только одну "бла-бла"
#include <Array.au3>
Dim $aNewArray[1][2],$j=0
Dim $avArray[5][2] = [ _
[1, 'бло'], _
[2, 'бля'], _
[3, 'бла-бла'], _
[4, 'бл-бл'], _
[5, 'бла-бла']]
_ArrayDisplay($avArray, "1")
$bla_bla=ArrayCut($avArray,'бла-бла')
_ArrayDisplay($bla_bla, "2")
Func ArrayCut($aArray,$whatleave)
For $i=UBound($avArray,1)-1 To 0 Step -1
If $avArray[$i][1] = $whatleave Then
Redim $aNewArray[UBound($aNewArray,1)+1][2]
$j+=1
$aNewArray[$j][0]=$avArray[$i][0]
$aNewArray[$j][1]=$avArray[$i][1]
EndIf
Next
Return $aNewArray
EndFunc
Func _ArrayCut($avArray, $whatleave)
$j = 0
For $i = UBound($avArray, 1) - 1 To 0 Step -1
If $avArray[$i][1] = $whatleave Then
ReDim $aNewArray[UBound($aNewArray, 1) + 1][2]
$j += 1
$aNewArray[$j][0] = $avArray[$i][0]
$aNewArray[$j][1] = $avArray[$i][1]
$aNewArray[0][0] = $j ;Это добавил: кол-во элементов нового массива.
EndIf
Next
Return $aNewArray
EndFunc ;==>_ArrayCut
Dim $aNewArray[1][2]
Dim $aNewArray[1][1]
Все работает, только я бы добавил
У Вас в начале
Код: AutoIt [Выделить]
Dim $aNewArray[1][2]У меня так работает
Код: AutoIt [Выделить]
Dim $aNewArray[1][1]