Hallo!
Hab mal wieder kurz Zeit gehabt und mir diese nützliche Funktion geschrieben mit der man ein Array mittels Wildcards filtern kann.
Ich hoffe, das kann mal jemand brauchen!
Spoiler anzeigen
#Include <Array.au3>
[/autoit] [autoit][/autoit] [autoit]Local $aTest
Local $aArray[5] = ["abcde", "aabcd", "bcd", "aeiou", "asdf"]
Local $aPattern[6] = ["*e", "aa*", "?cd", "*e*", "*d", "*d?"]
_ArrayDisplay($aArray, "Original Array")
[/autoit] [autoit][/autoit] [autoit]For $i = 0 To UBound($aPattern) - 1
$aTest = _ArrayPatternMatch($aArray, $aPattern[$i])
_ArrayDisplay($aTest, "Filter: " & $aPattern[$i])
Next
Func _ArrayPatternMatch($aArray, $sPattern)
;funkey May 17, 2010
If UBound($aArray, 0) <> 1 Then Return SetError(1, 0, "") ;no 1D-array
Local $n = UBound($aArray)
Local $aRes[$n], $j = 0
$sPattern = "^\Q" & $sPattern & "\E$"
$sPattern = StringReplace($sPattern, "?", "\E.\Q")
$sPattern = StringReplace($sPattern, "*", "\E.*\Q")
For $i = 0 To $n - 1
If StringRegExp($aArray[$i], $sPattern, 0) Then
$aRes[$j] = $aArray[$i]
$j += 1
EndIf
Next
If $j = 0 Then Return SetError(2, 0, "") ;no match
ReDim $aRes[$j]
Return $aRes
EndFunc