AddFile

  • ja das habe ich gemacht zeigt mir trotzdem ein fehler genau in dieser Zeile ==> Array variable has incorrect number of subscripts or subscript dimension range exceeded.:

  • Ja du muss auch wenn du FileRead benutzt auch ertmal die gewisse Datei mit FileOpen aufmachen versuch es mal mit:

    [autoit]


    Func AddRandomFiles()

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

    Local $TempArray[1]
    Global $aList = _FileListToArray($MoveFile, '*', 1)

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

    If Not IsArray($aList) Then Return SetError(1, 0, '')

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

    For $i = 0 To 2
    $iRan = Random(1, $aList[0], 1)
    _ArraySearch($TempArray, $aList[$iRan]); Suchen ob Eintrag schon existiert
    $file = FileOpen(zb: @ScriptDir&"\"&$aList[0],0)
    $arr = StringSplit(FileRead($file, ";")
    If @error Then; Eintrag existiert nicht
    GUICtrlCreateListViewItem($aList[$arr[0]] &"|"& $aList[$arr[1]] &"|"& $aList[$arr[3]], $MainGUI_ListView)
    _ArrayAdd($TempArray, $aList[$iRan]); Datei in Liste einfügen
    EndIf
    Next
    Return
    EndFunc ;==> AddRandomFiles

    [/autoit]

    Ich weiß ja natürlich nicht wie die Dateien aussehen die du mit FileReadArray einliest ist das pro Pfad eine Datei oder ist das eine Datei mit allen Pfaden?

    :thumbup:

  • dann sollte das funktionieren:

    1.Er liest alle Dateinen aus deinem Ordner aus Zeile:4
    Dann kommt die For Schleife:
    Zeile 9: Eine Zufall Datei wird rausgesucht
    Zeile 11:

    [autoit]

    $file = FileOpen($MoveFile&"\"&$iRan,0)

    [/autoit]


    Zeile 12:

    [autoit]

    $arr = StringSplit(FileRead($file),";")

    [/autoit]


    Zeile 14:

    [autoit]

    GUICtrlCreateListViewItem($aList[$arr[0]] &"|"& $aList[$arr[1]] &"|"& $aList[$arr[3]], $MainGUI_ListView)

    [/autoit]

    :thumbup:

  • ja genau der liest alle dateinen aus dem ordner, der liest aber die dateinennamen, und ich will dass er den Inhalt (jede Zeile) liest und in GUI einfügt
    sorry ich weiß dass nicht so einfach zu erklären ist

  • Hallo haspop,

    mach deine Func AddRandomFiles so:

    Spoiler anzeigen
    [autoit]

    Func AddRandomFiles()
    Local $aList = _FileListToArray($MoveFile, '*', 1), $aSplit
    If Not IsArray($aList) Then Return SetError(1, 0, '')
    Local $iRan
    For $i = 0 To 2 ;war 20
    $iRan = Random(1, $aList[0], 1)
    _ArraySearch($TempArray, $aList[$iRan]); Suchen ob Eintrag schon existiert
    If @error Then; Eintrag existiert nicht
    $sText = StringStripWS(FileRead($MoveFile & "\" & $aList[$iRan]),2)
    $aSplit = StringSplit($sText,";")
    GUICtrlCreateListViewItem($aSplit[1] & '|' & $aSplit[2]& '|' & $aSplit[3], $MainGUI_ListView)
    _ArrayAdd($TempArray, $aList[$iRan]); Datei in Liste einfügen
    EndIf
    Next
    Return
    EndFunc ;==> AddRandomFiles

    [/autoit]

    das temporäre Array muss am Anfang global deklariert werden,

    mfg autoBert

  • vielen dank autoBert es hat funktioniert :rock: super :rolleyes:
    nun kann ich probieren ob es mit MoveFile funktionieren wird ;)