Array verarbeitung - Mehrfachverarbeitung von Schleifen

  • Hallo

    Ich komme einfach nicht weiter. Ich möchte eine mehrfach Arrayverarbeitung durchführen.
    Dabei bekomme ich immer nur das Ergebnis von der ersten Arrayzeile wieder.
    Damit dieses etwas ( ich hoffe ) verständlich wird , versuche ich es zu erklären.
    Ich lese Ordnernamen aus , die eine Eindeutige ID haben ( GUID )
    Diese GUID wird für die spätere Abfrage benötigt.
    Jetzt möchte ich Unterordner auslesen.
    Dazu lese ich die ersten OrdnerNamen und Guid´s aus.
    Diese sollen dann weiter"gescannt" werden.
    Leider wird nur der erste Arrayeintrag " $beides_testlabor "Spalte 1 Zeile 1 übergeben und weiterverarbeitet.
    Ich vermute ein Fehler in der Schleife.
    Meine Frage ist nun , wie kann man dieses umsetzen ?
    ( Diese Abfrage kommt öfter vor , auch in Verbindung mit einem Vergleich)
    ( Eine Funktion oder include ?????? )

    Im Voraus - vielen Dank für Eure Hilfe

    Gruß

    Lars

    Spoiler anzeigen


    #include <Array.au3>

    $items = $itemManagement.GetItemsInFolder($testlaborGUID); Testlabor Software Namen auslesen
    $name_testlabor=""
    $guid_testlabor=""

    For $NSItemDetails in $items
    $name_testlabor = $name_testlabor & "|" & $NSItemDetails.Name ; Produktnamen auslesen
    $guid_testlabor = $guid_testlabor & "|" &$NSItemDetails.guid ; Produktname Guid ( Zahlen und Buchstaben kombi - wird zur weiteren verarbeitung benötigt)auslesen


    Next

    $name_testlabor=StringTrimLeft($name_testlabor,1) ; Erten String löschen ( "|")
    $guid_testlabor=StringTrimLeft($guid_testlabor,1); Erten String löschen ( "|")


    $name_testlabor=StringSplit($name_testlabor,"|",1) ;String in ein Array umwandeln
    $guid_testlabor=StringSplit($guid_testlabor,"|",1);String in ein Array umwandeln


    Dim $beides_testlabor[$name_testlabor[0]][2] ;Array´s zusammenführen
    For $i = 1 To $name_testlabor[0]
    $beides_testlabor[$i-1][0] = $name_testlabor[$i]
    $beides_testlabor[$i-1][1] = $guid_testlabor[$i]

    Next

    ; Jetzt sollen alle Zeilen aus Spalte 1 ( mit der GUID ) verarbeitet werden

    for $i = 0 to UBound ($beides_testlabor) -1 ;

    $items_testlabor_unter = $itemManagement.GetItemsInFolder($beides_testlabor[$i][1]);
    $name_testlabor_unter=""
    $guid_testlabor_unter=""


    For $NSItemDetails in $items_testlabor_unter
    $name_testlabor_unter = $name_testlabor_unter & "|" & $NSItemDetails.Name ; Produktnamen auslesen
    $guid_testlabor_unter = $guid_testlabor_unter & "|" &$NSItemDetails.guid ; Produktname Guid auslesen


    $name_testlabor_unter=StringTrimLeft($name_testlabor_unter,1) ; Erten String löschen ( "|")
    $guid_testlabor_unter=StringTrimLeft($guid_testlabor_unter,1); Erten String löschen ( "|")


    $name_testlabor_unter=StringSplit($name_testlabor_unter,"|",1);String in ein Array umwandeln
    $guid_testlabor_unter=StringSplit($guid_testlabor_unter,"|",1);String in ein Array umwandeln


    Dim $beides_testlabor_unter[$name_testlabor_unter[0]][2] ;Array´s zusammenführen
    For $i = 1 To $name_testlabor_unter[0]
    $beides_testlabor_unter[$i-1][0] = $name_testlabor_unter[$i]
    $beides_testlabor_unter[$i-1][1] = $guid_testlabor_unter[$i]

    Next
    _ArrayDisplay( $beides_testlabor_unter,""); Es wird mir nur der erste Wert angezeigt.

    Next
    Next


    Einmal editiert, zuletzt von lars_k (23. Dezember 2010 um 10:33)

  • Das Script ist soweit komplett .
    Ich rufe die Daten von einem Internen Server auf .
    Daher ist es schwierig dieses zu testen.
    Ich kann gerne ein Paar Screenshot´s hochladen.

    Danke und Gruß

    Lars

  • Hi!


    Beispiel:

    Spoiler anzeigen
    [autoit]

    #include 'File.au3'
    #include 'Array.au3'

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Local $aSave = _FileListToArray('C:\') ; Gefülltes Array

    [/autoit] [autoit][/autoit] [autoit]

    ConsoleWrite(_Array_Auswerten($aSave)&@CRLF) ; aufruf der Funktion u. Rückgabe

    [/autoit] [autoit][/autoit] [autoit]

    Func _Array_Auswerten(ByRef $Array)
    Local $return_array
    For $i = 1 To UBound($Array) -1; $i = 1 weil _FileListToArray in Array[0] die Anzahl (Fund) zurückgibt
    ; Funktion
    If StringInStr($Array[$i],'Windows') Then $return_array = $Array[$i] & ' Index: ' & $i
    Next
    Return $return_array
    EndFunc

    [/autoit]

    Lg Kleiner