Hi @ all
versuche krampfhaft aus einem Array Variablen zu erstellen, komme aber nicht zu Rande.
Spoiler anzeigen
AutoIt
#include <Array.au3>
#include <File.au3>
Global $folder[4]
$folder[0] = "A"
$folder[1] = "B"
$folder[2] = "C"
$folder[3] = "D"
Local $main = @HomeDrive & "\MyProg1\Main\"
DirCreate($main)
For $i = 0 To UBound($folder) - 1
DirCreate($main & $folder[$i])
For $j = 1 To 2
DirCreate($main & $folder[$i] & "\Daten" & $j)
Next
Next
_FileCreate($main & "A\Daten1\abc4730.txt")
_FileCreate($main & "A\Daten2\abc4750.txt")
_FileCreate($main & "B\Daten1\abc3210.txt")
_FileCreate($main & "B\Daten2\abc3190.txt")
_FileCreate($main & "C\Daten1\abc2680.txt")
_FileCreate($main & "C\Daten2\abc2650.txt")
_FileCreate($main & "D\Daten1\abc1330.txt")
_FileCreate($main & "D\Daten2\abc1350.txt")
MsgBox(0, "", _getInfo($main, '0'))
DirRemove(@HomeDrive & "\MyProg1", 1)
Func _getInfo($info, $info2)
Local $aList = ""
Local $bList = ""
Local $cList = ""
Local $dList = ""
Local $aSplit
For $i = 0 To UBound($folder) - 1
$Array = _FileListToArrayRec($info & $folder[$i], "abc*.txt", 1, 1, 1, 1)
;_ArrayDisplay($Array)
If IsArray($Array) Then ;ExitLoop
_ArrayColInsert($Array, 1)
;_ArrayDisplay($Array)
For $j = 1 To $Array[0][0]
$Array[$j][1] = StringMid($Array[$j][0], StringInStr($Array[$j][0], '\', 2, -1) + 1)
Next
;_ArrayDisplay($Array)
_ArraySort($Array, 1, 1, 0, 1)
;_ArrayDisplay($Array)
_ArrayColDelete($Array, 1)
;_ArrayDisplay($Array)
$bList = StringSplit($Array[1][0],"\")
;_ArrayDisplay($bList)
;$aList &= $bList[UBound($bList)-2]& "-" & StringReplace(StringReplace($Array[1][1], $info2 & ".txt", ""), "abc", "") & "|"
$aList &= $bList[UBound($bList)-2]& "-" & StringReplace(StringReplace($bList[UBound($bList)-1], $info2 & ".txt", ""), "abc", "") & "|"
Else
$aList &= 0 & "-" & 0 & "|"
;$bList &= 0 & "-"
EndIf
Next
$aArray = StringSplit(StringTrimRight($aList, 1), "|")
;_ArrayDisplay($aArray)
Global $aCount[$aArray[0]]
For $k = 1 To UBound($aArray) - 1
$bArray = StringSplit($aArray[$k], "-")
;_ArrayDisplay($bArray)
$cList &= $bArray[2] & "-"
$aCount[$k-1] = _change($bArray[1])
Next
_ArrayDisplay($aCount)
Return StringTrimRight($cList, 1)
EndFunc
Func _change($cmd)
If ($cmd = "Daten1") Then
Return "Daten2"
ElseIf ($cmd = "Daten2") Then
Return "Daten1"
Else
Return 0
EndIf
EndFunc
Alles anzeigen
Das was der Returnwert liefert passt schon, aber wie krieg ich den Row[1] Wert aus dem $bList Array zu einer seperaten "gegensätzlichen" Variable? Sprich wenn Daten1 im Array angezeigt wird als Variable Daten2 rauskommt und umgekehrt.
Sieht auch alles recht wild aus, vllt. lässt es sich auch noch kürzen? Danke schonmal im Voraus!