Hilfe bei Arrays (mein erstes Mal!)

  • Hi,

    ich hab mir gedacht, ich könnte ja eine kleine funktion basteln, die mir aus einem programm zeile für zeile ausliest, diese in arrays einliest und zum schluss array für array in einer excelliste einfügt. soweit so gut, mein problem jetzt ist aber, dass in diesen arrays beim "report" nichts drin steht, bzw er nur das was zuvor schon im clipboard stand einfügt :)

    hoffe der text ist einigermaßen verständlich, häng daran jetzt schon ein paar stunden ^^ - bin für jede hilfe dankbar!!

    p.s.: es sind deswegen soviele "sleeps" drin, weil das programm sau langsam ist -.-

    [autoit]

    func copy()
    dim $i = 0
    dim $array[89]

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

    ;ins programm klicken
    MouseClick("left",325,485)
    sleep(200)

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

    For $i = 0 to 89

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

    send("^c")
    sleep(300)
    $array[$i] = StringRegExpReplace(ClipGet(),' ','_')
    sleep(100)
    send("{down}")
    sleep(100)

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

    ;wenn scrollbalken am ende, zur nächsten funktion springen
    $balken = _ImageSearch("pics\service_balken.bmp",1,$r1,$r2,2)

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

    if $balken = 1 Then
    report()
    EndIf

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

    Next

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

    report()
    EndFunc

    [/autoit]

    Grüße
    x0r

    Simon nörgelt, Simon nervt - aber Simon verbessert die Welt. Glaubt er.

    Einmal editiert, zuletzt von x0r (20. Oktober 2010 um 08:12)

  • ja, hab ich versucht, allerdings krieg ich 0 infos, ausser koordinaten..
    das programm wird niemand kennen, es nennt sich "Gii" und ist eine eigenkreation eines edv-konzerns :)

    Simon nörgelt, Simon nervt - aber Simon verbessert die Welt. Glaubt er.

  • die mir aus einem programm zeile für zeile ausliest, diese in arrays einliest und zum schluss array für array in einer excelliste einfügt.


    Es ist nur ein Array mit vielen Elementen.

    dass in diesen arrays beim "report" nichts drin steht,


    Wie gesagt, ein Array. Was report() macht, sieht man nicht.

    Deine FOR-Schleife kann höchstens bis 88 laufen und wenn du $array in copy() deklarierst, dann kennt report() es nicht.
    Ist mir zwar zu theoretisch aber versuch's mal so und schau vor allem, ob in der Konsole überhaupt was ausgegeben wird.

    Spoiler anzeigen
    [autoit]

    #include <array.au3>

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

    _copy()
    Func _copy()
    Dim $array[89]
    ;ins programm klicken
    MouseClick("left", 325, 485)
    Sleep(200)

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

    For $i = 0 To 88
    Send("^c")
    Sleep(300)
    $array[$i] = StringRegExpReplace(ClipGet(), ' ', '_')
    ConsoleWrite($array[$i])
    Sleep(100)
    Send("{down}")
    Sleep(100)
    $balken = _ImageSearch("pics\service_balken.bmp", 1, $r1, $r2, 2)
    If $balken = 1 Then
    _report($array)
    EndIf
    Next
    EndFunc ;==>_copy

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

    Func _report($array)
    _ArrayDisplay($array)
    EndFunc ;==>_report

    [/autoit]
  • danke leute, werd ich morgen mal versuchen. muss so zeuch für meine arbeit schreiben und hab das dementsprechende script leider nicht zuhause. geb dann bescheid :)

    Simon nörgelt, Simon nervt - aber Simon verbessert die Welt. Glaubt er.

  • guten morgen!

    soeben hab ich was getestet, und zwar:

    2 funktionen gebastelt, in funktion1 werden die arrays definiert und funktion2 soll diese dann quasi weiterkopieren.
    was mir hierbei aufgefallen ist: arrays werden nur für die jeweilige funktion erkannt, richtig?
    wenn ich alles in eine funktion bastel, funktionierts tadellos, aber bei 2 funktionen eben nicht mehr...

    ich denk nu hab ichs kapiert - lieber spät als nie? :D

    danke an euch!!!

    Grüße
    x0r

    Simon nörgelt, Simon nervt - aber Simon verbessert die Welt. Glaubt er.

  • ja, danke für den tipp. ich hab jetz einfach die beiden copy&paste funktionen in eine gebaut, es läuft :thumbup:

    und jetz darf ich 2 jahre warten, bis der alles aus dem ends lahmen programm kopiert hat :pinch:

    Gruß
    x0r

    Simon nörgelt, Simon nervt - aber Simon verbessert die Welt. Glaubt er.

  • so, jetz hab ich noch ein problem..

    und zwar: gibt es eine möglichkeit abzufragen, wieviele werte in einem array definiert sind?

    z.b.:

    dim $array[200]

    $array[0] = blubb1
    $array[1] = blubb2
    $array[2] = blubb3
    $array[3]= ""
    ... die restlichen sind leer - kann man da irgendwie eine "3" rauszukriegen?

    ich hoffe ihr wisst was ich meine, bin mit meiner kreativität langsam am ende :D

    Gruß
    x0r

    Simon nörgelt, Simon nervt - aber Simon verbessert die Welt. Glaubt er.

  • Kein Problem^^
    Gut möglich dass es dafür schon ne Funktion gibt, aber sowas ist auch schnell stelbst erstellt

    [autoit][/autoit]
    Spoiler anzeigen
    [autoit]

    Dim $Array[200] = ["a", "b", "c", "d", "f"]
    MsgBox(0,"",_Arraygetdef($Array))

    Func _Arraygetdef(ByRef $a)
    Local $iCount = 0
    For $i = 0 To UBound($a)-1
    If $a[$i] Then $iCount += 1
    Next
    Return $iCount
    EndFunc

    [/autoit]
    [autoit][/autoit]
  • wow tausend dank, das bringt mich einen riesen schritt weiter, wenn jetzt die paste-funktion endlich nicht mehr ins leere läuft

    :thumbup: :thumbup: :thumbup:

    Simon nörgelt, Simon nervt - aber Simon verbessert die Welt. Glaubt er.