Pointer und andere Fragen...

  • Ja, ich hab vor ca 3 wochen mit AutoIT angefangen und hab Vorkenntnisse im Programmieren mit Turbo Pascal.

    Ich würd mir jetzt gerne ein komplexeres Programm schreiben, bräuchte dazu aber Informationen.

    Unter anderem - wie kann ich bei AutoIT mit Pointern arbeiten?
    Kann ich eine lineare Liste erstellen? (Via Record)
    Wie erstelle ich ein Array und verwende diesen?

    Wäre sehr brauchbar, wenn ihr mir da helfen könntet^^

    4 Mal editiert, zuletzt von TurboCal (26. November 2006 um 00:12)

  • Pointer dürften nicht gehen.

    Array so:

    [autoit]

    Dim $arMyFirstArray[3] = [ 1, 2, 3]
    ;oder
    Dim $arMyFirstArray[3]
    $arMyFirstArray[0] = 1
    $arMyFirstArray[1] = 2
    $arMyFirstArray[2] = 3

    [/autoit]
  • Ja, ich will grad ein kleines Testprogramm schreiben und bräuchte ein Array von 350, ist das möglich? :rolleyes:

  • Hab grad ein kleines Problem.

    Ich bekomme diese Fehlermeldung, wenn ich bei diesem Teil meines Skriptes angelangt bin:

    [Blockierte Grafik: http://img364.imageshack.us/img364/9866/unbenanntub3.jpg]

    [autoit]

    ;Erste Y Zeile wird ausgelesen
    Do
    ;Falls das Pixel, das den Abstand $i vom x-Ursprung die Farbe $textcolor hat...
    If (PixelGetColor ($x_root + $i, $y1) = $textcolor) Then

    ;dann wird das $i -te Pixel in der ersten y Reihe eingelesen. -> 1 - 0 Farbe ja/nein

    $ArraY1[$i] = $an
    Else $ArraY1[$i] = $aus

    EndIf
    $i = $i + 1
    ;naechste Runde wird das naechste Pixel in der naechsten Zeile ausgelesen.
    Until $i = 351
    $i = 1

    [/autoit]

    Woran liegt das?

    // Variablen:

    [autoit]

    $i = 1
    $an = "x"
    $aus = "o"

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

    ;Y Koordinaten
    $y1 = 670
    $y2 = 671
    $y3 = 672
    $y4 = 673
    $y5 = 674
    $y6 = 675
    $y7 = 676
    $y8 = 677
    $y9 = 678

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

    ;x Ursprung
    $x_root = 30

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

    ;die Farbe des zu analysierenden Textes
    $textcolor = 16692545

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

    ;die Y Koordinaten in einem Array
    Dim $ArraY1[351]
    Dim $ArraY2[351]
    Dim $ArraY3[351]
    Dim $ArraY4[351]
    Dim $ArraY5[351]
    Dim $ArraY6[351]
    Dim $ArraY7[351]
    Dim $ArraY8[351]
    Dim $ArraY9[351]

    [/autoit]
  • [autoit]


    ;Y Koordinaten
    Dim $y[11] = [ 9, 670, 671, 672, 673, 674, 675, 676, 677, 678 ]

    ;x Ursprung
    $x_root = 30

    ;die Farbe des zu analysierenden Textes
    $textcolor = 16692545

    ;die Y Koordinaten in einem Array
    Dim $ArraY[10][351]

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

    ;Erste Y Zeile wird ausgelesen
    For $i = 1 to 350
    ;Falls das Pixel, das den Abstand $i vom x-Ursprung die Farbe $textcolor hat...
    If (PixelGetColor ($x_root + $i, $y[1]) = $textcolor) Then
    ;dann wird das $i -te Pixel in der ersten y Reihe eingelesen. -> 1 - 0 Farbe ja/nein
    $ArraY[1][$i] = True
    Else
    $ArraY[1][$i] = False
    EndIf
    ;naechste Runde wird das naechste Pixel in der naechsten Zeile ausgelesen.
    Next
    $i = 1

    [/autoit]

    Probier das mal, ich habs bissel übersichtlicher geschrieben und joa der Fehler bei dir war das du in der Do Schleife bis 351 gehst und somit das 351. Element definieren willst die Array aber von 0 als 1. element und 350 als 351. element ausgeht.

    Einmal editiert, zuletzt von Daniel W. (26. November 2006 um 00:23)