arrayproblem

  • Hallo.....


    ich schreibe grade ein script dass mithilfe eines cmd-progs einen md5hash berechnet.
    habs soweit gemacht dass die ausgabe ins array übergeben wird, dort ausgelesen, gesplittet, ins array geschoben, und wieder ausgegeben wird.
    problem ist folgendes....
    warum muss in der besch..... while-schleife die msgbox(0,"",$blabla) drin sein damit der wert auch dort übergeben wird??
    achja, ich hab die neue autoit-version.
    seitdem hab ich nur probleme.... wenns so weitergeht schmeiss ich den mist wieder runter und nimm die alte

    hier mal das script.

    [autoit]


    #include <array.au3>
    #include <Constants.au3>

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

    Dim $arr[1]

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

    $md5deep = "\md5deep-3.0\md5deep.exe"
    $checkfile = "C:\test.exe"

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

    Local $pid = Run('"' & $md5deep & '" ' & '"' & $checkfile, "", @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)

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

    While 1
    $hash = StdoutRead($pid)
    If @error Then ExitLoop
    MsgBox(0, "", $hash) ; <== genau die ist das prob. sobald das deaktiviert ist. wird nichts ins array übergeben /edit.... doch wird schon ;reingeschrieben, aber nach belieben an unterschiedlichen index.....
    _ArrayAdd($arr, $hash)

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

    WEnd
    $hashsplit = StringSplit($arr[1], " ")

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

    _ArrayDisplay($hashsplit)
    MsgBox(0, "", $hashsplit[1])

    [/autoit]

    3 Mal editiert, zuletzt von Marco (19. Mai 2008 um 17:39)

  • liegt an der neuen version 3.2.12.0
    mit der alten 3.2.10.0 gehts wunderbar und absolut perfekt.
    hab in der changelog gelesen dass was bei §std_out was geändert wurde......
    wenn ich mir im aktuellen script alles nach der while-schleife deaktiviere und mir das array anzeigen lasse, is doch tatsächlich der wert $hash ins array geschrieben worden.
    allerdings im index mal bei 151, oder bei 182... also je nach lust und laune oder was weiss ich..... :thumbdown:


    MfG

  • Hi,

    also ich hab'smal ausprobiert, habe mir die md5deep aus dem internet geladen und eine test.exe erstellt. Verzeichnisse so wie bei dir.

    Ist erst mal schief gegangen, weil StringSplit($arr[2] bei mir einen fehler bringt. wenn ich StringSplit($arr[1] verwende geht das egal ob ich die Msgbox habe oder nicht.

    Ich verwende allerdings AutoIt V3.2.10.0 Möglicherweise liegt's ja an der Version.

    Ciao und Gruß rabbit

  • Hi...

    StringSplit($arr[1]) ist auch richtig.
    nur versuch das funktionierende script mal mit der neuen version und du reisst dir die haare raus (falls vorhanden) :D


    MfG