1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. TheLuBu

Beiträge von TheLuBu

  • RosettaCode Sammelthread

    • TheLuBu
    • 12. März 2013 um 10:36

    Art: Neu-Implementierung
    Task: http://rosettacode.org/wiki/Luhn_test_of_credit_card_numbers
    Beteiligte: TheLuBu
    Skript:

    Spoiler anzeigen
    [autoit]

    Global $avarray[4] = [49927398716, 49927398717, 1234567812345678, 1234567812345670]
    For $i = 0 To 3
    checkLuhn($avarray[$i])
    Next

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

    Func checkLuhn($number)
    $sum = 0
    $numDigits = StringSplit($number, "")
    For $i = $numDigits[0] - 1 To 1 Step -2
    $numDigits[$i] = $numDigits[$i] * 2
    If $numDigits[$i] >= 10 Then $numDigits[$i] -= 9
    Next
    For $i = 1 To $numDigits[0]
    $sum += $numDigits[$i]
    Next
    If StringRight($sum, 1) = "0" Then
    ConsoleWrite("Luhn-Check (" & $number & ") : True" & @CRLF)
    Return True
    Else
    ConsoleWrite("Luhn-Check (" & $number & ") : False" & @CRLF)
    Return False
    EndIf
    EndFunc ;==>checkLuhn

    [/autoit]
  • RosettaCode Sammelthread

    • TheLuBu
    • 12. März 2013 um 09:25

    Art: Neu-Implementierung
    Task: http://rosettacode.org/wiki/Reduced_row_echelon_form
    Beteiligte: TheLuBu
    Skript:

    Spoiler anzeigen
    [autoit]

    Global $ivMatrix[3][4] = [[1, 2, -1, -4],[2, 3, -1, -11],[-2, 0, -3, 22]]
    ToReducedRowEchelonForm($ivMatrix)

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

    Func ToReducedRowEchelonForm($matrix)
    Local $clonematrix, $i
    Local $lead = 0
    Local $rowCount = UBound($matrix) - 1
    Local $columnCount = UBound($matrix, 2) - 1
    For $r = 0 To $rowCount
    If $columnCount = $lead Then ExitLoop
    $i = $r
    While $matrix[$i][$lead] = 0
    $i += 1
    If $rowCount = $i Then
    $i = $r
    $lead += 1
    If $columnCount = $lead Then ExitLoop
    EndIf
    WEnd
    ; There´s no built in Function to swap Rows of a 2-Dimensional Array
    ; We need to clone our matrix to swap complete lines
    $clonematrix = $matrix ; Swap Lines, no
    For $s = 0 To $columnCount
    $matrix[$r][$s] = $clonematrix[$i][$s]
    $matrix[$i][$s] = $clonematrix[$r][$s]
    Next
    Local $m = $matrix[$r][$lead]
    For $k = 0 To $columnCount
    $matrix[$r][$k] = $matrix[$r][$k] / $m
    Next
    For $i = 0 To $rowCount
    If $i <> $r Then
    Local $m = $matrix[$i][$lead]
    For $k = 0 To $columnCount
    $matrix[$i][$k] -= $m * $matrix[$r][$k]
    Next
    EndIf
    Next
    $lead += 1
    Next
    ;##########################################################
    ;###################CONSOLE OUTPUT#########################
    ;##########################################################
    For $i = 0 To $rowCount
    ConsoleWrite("[")
    For $k = 0 To $columnCount
    ConsoleWrite($matrix[$i][$k])
    If $k <> $columnCount Then ConsoleWrite(",")
    Next
    ConsoleWrite("]" & @CRLF)
    Next
    ;##########################################################
    ;##########################################################
    ;##########################################################
    Return $matrix
    EndFunc ;==>ToReducedRowEchelonForm

    [/autoit]
  • RosettaCode Sammelthread

    • TheLuBu
    • 11. März 2013 um 14:14

    Art: Neu-Implementierung
    Task: http://rosettacode.org/wiki/Letter_frequency
    Beteiligte: TheLuBu
    Skript:

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

    _Letter_frequency(FileOpenDialog("Open Text File", @DesktopDir, "Textfiles (*.txt)"), True, False)

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

    Func _Letter_frequency($Path, $fcase = True, $fspecial_chars = True)
    Local $hFile, $sRead, $iupto, $iStart, $iCount
    If Not $fcase Then $fcase = False
    If Not $fspecial_chars Then
    $iStart = 64
    If Not $fcase Then
    $iupto = 26
    Else
    $iupto = 58
    EndIf
    Else
    $iStart = 31
    $iupto = 224
    EndIf
    $hFile = FileOpen($Path, 0)
    $sRead = FileRead($hFile)
    FileClose($hFile)
    For $i = 1 To $iupto
    If Not $fspecial_chars Then
    If $iStart + $i > 90 And $iStart + $i < 97 Then ContinueLoop
    EndIf
    $sRead = StringReplace($sRead, Chr($iStart + $i), "", 0, $fcase)
    $iCount = @extended
    If $iCount > 0 Then ConsoleWrite(Chr($iStart + $i) & " : " & $iCount & @CRLF)
    Next
    EndFunc ;==>_Letter_frequency

    [/autoit]
  • RosettaCode Sammelthread

    • TheLuBu
    • 11. März 2013 um 12:33

    Art: Neu-Implementierung
    Task: http://rosettacode.org/wiki/Greatest_common_divisor
    Beteiligte: TheLuBu
    Skript:

    Spoiler anzeigen
    [autoit]

    _GCD(18, 12)
    _GCD(1071, 1029)
    _GCD(3528, 3780)

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

    Func _GCD($ia, $ib)
    Local $ret = "GCD of " & $ia & " : " & $ib & " = "
    Local $imod
    While True
    $imod = Mod($ia, $ib)
    If $imod = 0 Then Return ConsoleWrite($ret & $ib & @CRLF)
    $ia = $ib
    $ib = $imod
    WEnd
    EndFunc ;==>_GCD

    [/autoit]
  • RosettaCode Sammelthread

    • TheLuBu
    • 11. März 2013 um 12:31
    Zitat von minx

    what

    #700


    Da hab ich beim Kopieren wohl etwas vergessen :D

  • RosettaCode Sammelthread

    • TheLuBu
    • 11. März 2013 um 11:53

    Art: Neu-Implementierung
    Task: http://rosettacode.org/wiki/Greatest_subsequential_sum
    Beteiligte: TheLuBu
    Skript:

    Spoiler anzeigen
    [autoit]

    Local $iArray[11] = [-1, -2, 3, 5, 6, -2, -1, 4, -4, 2, -1]
    GREAT_SUB($iArray)
    Local $iArray[5] = [-1, -2, -3, -4, -5]
    GREAT_SUB($iArray)
    Local $iArray[15] = [7, -6, -8, 5, -2, -6, 7, 4, 8, -9, -3, 2, 6, -4, -6]
    GREAT_SUB($iArray)

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

    Func GREAT_SUB($iArray)
    Local $iSUM = 0, $iBEGIN_MAX = 0, $iEND_MAX = -1, $iMAX_SUM = 0
    For $i = 0 To UBound($iArray) -1
    $iSUM = 0
    For $k = $i To UBound($iArray) -1
    $iSUM += $iArray[$k]
    If $iSUM > $iMAX_SUM Then
    $iMAX_SUM = $iSUM
    $iEND_MAX = $k
    $iBEGIN_MAX = $i
    EndIf
    Next
    Next
    ConsoleWrite("Array: [")
    For $i = 0 To UBound($iArray) -1
    If $iArray[$i] > 0 THen ConsoleWrite("+")
    ConsoleWrite($iArray[$i])
    If $i <> UBound($iArray) -1 Then ConsoleWrite(",")
    Next
    ConsoleWrite("]"&@CRLF&"+>Maximal subsequence: [")
    $iSUM = 0
    For $i = $iBEGIN_MAX To $iEND_MAX
    $iSUM += $iArray[$i]
    If $iArray[$i] > 0 THen ConsoleWrite("+")
    ConsoleWrite($iArray[$i])
    If $i <> $iEND_MAX Then ConsoleWrite(",")
    Next
    ConsoleWrite("]"&@CRLF&"!>SUM of subsequence: "&$iSUM & @CRLF)
    EndFunc

    [/autoit]
  • Own_Tab UDF Problem

    • TheLuBu
    • 27. Februar 2013 um 13:54

    Das ist ja eben das Problem, ich kriege den Fehler nicht rekonstruiert.

    Hier auch einmal die Funktion _OwnTabCreate

    Spoiler anzeigen
    [autoit]

    Func _OwnTab_Create($hWnd, $aTabText, $xPos, $yPos, $iWidth, $iHeight, $iItemHeight = -1, $nColNoSel = -1, $nColSel = -1, $nColBg = -1, $aIcons = "")
    Local $aSize, $aSize2[UBound($aTabText)][2], $xLast = 0, $aCtrl[UBound($aTabText) + 1][11], $iOffset = 0
    If Not IsArray($aIcons) Then
    Local $Icons[UBound($aTabText)][2]
    Else
    Local $Icons = $aIcons
    EndIf
    If Not IsArray($aTabText) Then Return SetError(1, 0, "")
    For $i = 0 To UBound($aTabText) - 1
    If $aTabText[$i] = "" Then Return SetError(2, $i + 1, "")
    $aSize = _GetTextSize($aTabText[$i])
    $aSize[0] += Ceiling($aSize[0] / 10) ;make it 10% longer for bold text
    $aSize2[$i][0] = $aSize[0]
    $aSize2[$i][1] = $aSize[1]
    If $iItemHeight = -1 Then $iItemHeight = $aSize[1]
    If $Icons[$i][0] <> "" Then
    $iOffset = $iItemHeight
    $aTabText[$i] &= " "
    Else
    $iOffset = 0
    EndIf
    $aCtrl[$i + 1][7] = $Icons[$i][0] ;filename for icon
    $aCtrl[$i + 1][8] = $Icons[$i][1] ;index for icon
    $aCtrl[$i + 1][9] = $aSize[0] + 5 + $iOffset ;labelwidth
    $aCtrl[$i + 1][0] = GUICtrlCreateLabel($aTabText[$i], $xPos + $xLast + 5, $yPos + 2, $aCtrl[$i + 1][9], $iItemHeight, 0x411201 + ($Icons[$i][0] <> ""), $OwnTab_Style)
    _HoverAddCtrl($aCtrl[$i + 1][0])
    If $Icons[$i][0] <> "" Then
    $aCtrl[$i + 1][6] = GUICtrlCreateIcon("", 0, $xPos + $xLast + 8, $yPos + 5, $iItemHeight - 6, $iItemHeight - 6)
    Else
    $aCtrl[$i + 1][6] = GUICtrlCreateDummy()
    EndIf
    ;~ If $Icons[$i][0] <> "" Then _SetBkIcon($aCtrl[$i + 1][6], $nColNoSel, $aCtrl[$i + 1][7], $aCtrl[$i + 1][8], $iItemHeight - 6, $iItemHeight - 6)
    GUICtrlCreateLabel($aCtrl[$i + 1][7], -200, -200) ;For information
    GUICtrlCreateLabel($aCtrl[$i + 1][8], -200, -200) ;For information
    GUICtrlCreateLabel($iItemHeight - 6, -200, -200) ;For information
    $aCtrl[$i + 1][2] = $nColNoSel
    $aCtrl[$i + 1][3] = $nColSel
    $xLast += $aCtrl[$i + 1][9]
    Next
    GUICtrlCreateLabel("", $xPos, $yPos + $iItemHeight, $iWidth, $iHeight, 0x411000, $OwnTab_Style)
    GUICtrlSetState(-1, 128) ;$GUI_DISABLE
    GUICtrlSetBkColor(-1, $nColBg)
    $xLast = 0
    For $i = 0 To UBound($aTabText) - 1
    If $Icons[$i][0] <> "" Then
    $iOffset = $iItemHeight
    Else
    $iOffset = 0
    EndIf
    $aCtrl[$i + 1][1] = GUICtrlCreateLabel("", $xPos + $xLast + 6, $yPos + $iItemHeight - $OwnTab_Style, $aSize2[$i][0] + 3 + $iOffset, 2+2*$OwnTab_Style)
    GUICtrlSetBkColor(-1, $nColSel)
    $xLast += $aSize2[$i][0] + 5 + $iOffset
    Next
    $aCtrl[0][1] = $iItemHeight
    $aCtrl[0][2] = $nColNoSel
    $aCtrl[0][3] = $nColSel
    $aCtrl[0][9] = $yPos + 2
    $hOwnTabGui = $hWnd
    Return $aCtrl
    EndFunc ;==>_OwnTab_Create

    [/autoit]

    In der Funktion wird ein Label erstellt, dies schlägt auch fehl! (Return 0, @error = 1)

    --EDIT--
    Wenn ich vor dem Funktionsaufruf von _OwnTab_Create ein Control erstelle, erhalte ich keinen Fehler, das Control wird erstellt und ich kriege eine ControlID zurück

    --EDIT-- Ich finde keinen Grund, warum das erstellen eines Labels fehlschlagen sollte, wenn es kurz vorher noch funktioniert hat

  • Own_Tab UDF Problem

    • TheLuBu
    • 27. Februar 2013 um 11:57

    Hallo liebe Community,

    Ich bastel gerade an einer GUI und bräuchte etwas Hilfe.
    Ich benutze die Own-Tab UDF von funkey

    Spoiler anzeigen
    [autoit]

    Local $aTabText[3] = ["MS SQL Server", "Email", "MySQL Server"] ;Declare the regions for the OwnTab-control
    Local $aTabIcons[3][2] = [[$icondllpath, 49],[$icondllpath, 44],[$icondllpath, 49]]
    Global $aconfig_TAB = _OwnTab_Create($h_Gui, $aTabText, 220, 65, 629, 385, 25, 0xD5D5D5, 0xFFFFFF, 0xFFFFFF, $aTabIcons)
    #region ### MSSQL Server ###
    _OwnTab_Add($aconfig_TAB) ;Start controls tab1
    GUICtrlCreateLabel($as_language[12], 230, 107, 100, 30, -1, -1)
    _Controlsetview(-1)
    $c_MSSQL_IP = GUICtrlCreateInput("", 340, 100, 170, 30)
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $c_MSSQL_IP = ' & $c_MSSQL_IP & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console

    [/autoit]

    Ich erhalte diesen Fehler:

    [autoit]

    @@ Debug(8103) : $c_MSSQL_IP = 0
    >Error code: 1

    [/autoit]

    Wenn ich nun das Erstellen des Tabs auskommentiere:

    Spoiler anzeigen
    [autoit]

    Local $aTabText[3] = ["MS SQL Server", "Email", "MySQL Server"] ;Declare the regions for the OwnTab-control
    Local $aTabIcons[3][2] = [[$icondllpath, 49],[$icondllpath, 44],[$icondllpath, 49]]
    ;~ Global $aconfig_TAB = _OwnTab_Create($h_Gui, $aTabText, 220, 65, 629, 385, 25, 0xD5D5D5, 0xFFFFFF, 0xFFFFFF, $aTabIcons)
    #region ### MSSQL Server ###
    ;~ _OwnTab_Add($aconfig_TAB) ;Start controls tab1
    GUICtrlCreateLabel($as_language[12], 230, 107, 100, 30, -1, -1)
    _Controlsetview(-1)
    $c_MSSQL_IP = GUICtrlCreateInput("", 340, 100, 170, 30)
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $c_MSSQL_IP = ' & $c_MSSQL_IP & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console

    [/autoit]

    Erhalte ich keinen Fehler.

    Ich weiß nicht woran es liegen könnte, ich kann aber das gesamte Script aus Datenschutzgründen und Länge ( ~10k Zeilen ohne Includes) nicht posten.

    Kann sich jemand das erklären / mir helfen?

  • Random Frage!

    • TheLuBu
    • 18. Februar 2013 um 10:54
    Zitat von miks.de
    Spoiler anzeigen

    Das ist ja aber keine prozentuale Wahrscheinlichkeit. in dem Fall trifft Case 0 ja auch immer für Case 1 zu ..

    Das ist nicht ganz richtig :)
    Case 0 wird ausgeführt, wenn der Wert < 80 ist, damit ist der If-Zweig abgearbeitet, Case 1 wird also nicht mehr ausgeführt.
    Bei 81 trifft die Bedingung für Case 0 nicht mehr zu, also wird in die nächste Bedingung geschaut, siehe da es passt, für alle Werte, die nicht in die erste Bedingung passen, in diesem Fall also 10 Stück, also eine 10% Chance bei Random(1,100,1)

  • Language [UDF] v1.0

    • TheLuBu
    • 7. Januar 2013 um 09:19

    Schöne UDF, aber wie bereits angesprochen wurde, wäre eine Beschreibung der einzelnen Funktionen schön.
    Schau dir mal http://www.autoitscript.com/wiki/UDF-spec an wegen der Variablen Bezeichnung bei UDF´s und
    https://autoit.de/index.php?page=Thread&amp;threadID=18191 kann dir helfen,
    die Beschreibung zu den Funktionen zu erstellen

  • Excel-Datei bearbeiten, öfnnen von Excel und Datei...

    • TheLuBu
    • 11. Dezember 2012 um 14:56

    Du hast eine Eingabe vergessen ;)

    [autoit]


    ;...
    If @error Then
    _OpenXLS(0)
    ; == Excel ist nicht geöffnet, neues Excel-Objekt erstellen
    $fOpen = True
    Else
    ;...

    [/autoit]
  • .NET Toolbar bzw. Menubar Menuitem auslesen

    • TheLuBu
    • 11. Dezember 2012 um 12:00

    Hallo liebe Community,
    ich sitze grade an einer Automatisierung und weiß nicht weiter ;)

    Ich habe eine Menuleiste, welche von Autoit nicht als Menü erkannt wird.

    Ich habe mir jetzt ein anderes Controlinfo Tool runtergeladen (RanorexSpy), welches mir die Infos anzeigt (siehe Anhang)

    an das Control selbst komme ich ( _mdiMain_Toolbars_Dock_Area_Top)
    allerdings ist es für Autoit weder eine Toolbar noch eine Menüleiste.

    Gibt es eine Möglichkeit an die "Elemente", wie es bei RanorexSpy heißt, via Autoit zu kommen?
    Ohne MouseMove natürlich ^^

    Dateien

    Ranorex.jpg 111,31 kB – 0 Downloads
  • Speicher Leak?

    • TheLuBu
    • 6. Dezember 2012 um 11:12

    Kannst du das gesamte Script nochmal posten? Du hast ja jetzt einige Änderungen vorgenommen

  • Speicher Leak?

    • TheLuBu
    • 4. Dezember 2012 um 10:13

    so, ein paar Sachen habe ich noch gefunden:

    [autoit]

    OnAutoItExitRegister("_Exit")

    [/autoit]


    füg das mal unter

    [autoit]

    Opt("GUIOnEventMode", 1)

    [/autoit]


    ein.
    In die _Exit Funktion füg bitte

    [autoit]

    _SQLite_Close($usedb)
    _SQLite_Shutdown()

    [/autoit]


    vor dem Exit ein

    Damit wird die DLL bei jedem Exit auch wirklich aus dem Speicher geladen.

    Ich schaue mal noch weiter, ob ich noch was finde

  • Speicher Leak?

    • TheLuBu
    • 3. Dezember 2012 um 13:37

    Probier mal bitte, nur um SQLite auszuschließen, nach dem Aufruf von lade_aktive_aps() einmal die Datenbank neuzustarten

    [autoit]

    lade_aktive_aps()
    _SQLite_Close()
    _SQLite_Shutdown()
    _SQLite_Startup()
    Global $DB = _SQLite_Open($usedb)

    [/autoit]
  • Control für verschiedenfarbige Texte

    • TheLuBu
    • 28. November 2012 um 11:12

    Schau dir mal die Chatbox UDF
    von TheShadowAE an, die kann sowas :)

  • Speicher Leak?

    • TheLuBu
    • 27. November 2012 um 14:24

    Setz mal hinter alle die Querys nach diesem Schema

    [autoit]


    If _SQLite_Query($DB, "SELECT geplante_startzeit FROM aufgabenliste WHERE geplante_startzeit LIKE '" & @MDAY & "/" & @MON & "/" & @YEAR & "_________' ORDER BY geplante_startzeit DESC", $Query) <> 0 Then
    Global $sql_error = @error
    _check_sqlite_query_errors()
    Return 0
    EndIf

    [/autoit]

    noch ein

    [autoit]

    _SQLite_QueryFinalize($hQuery)

    [/autoit]


    Du öffnest immer weiter Querys , diese werden aber nicht beendet.
    Weiterhin würde ich diese Abfragen in eine Funktion packen, das macht das ganze übersichtlicher :)
    -EDIT-

    [autoit]

    Func _sqlitequeryceck($DB, $sQuery)
    Local $retQuery
    If _SQLite_Query($DB, $sQuery, $retQuery) <> 0 Then
    _check_sqlite_query_errors(@error)
    _SQLite_QueryFinalize($retQuery)
    Return 0
    EndIf
    Return $retQuery
    EndFunc ;==>_sqlitequeryceck

    [/autoit]

    Dann hast du nurnoch immer eine Zeile, nicht mehr 4 ;)
    Und die _check_sqlite_query_errors Funktion muss nur leicht verändert werden, dann hast du auch noch eine Globale Variable weniger ;)

  • Brownian Tree

    • TheLuBu
    • 26. November 2012 um 16:43

    Hallo ihr lieben,
    ich bin seit einiger Zeit schon auf https://autoit.de/www.Rosettacode.org unterwegs und versuche einige Tasks zu lösen.

    Derzeit hänge ich an dem Brownian Tree

    Hier mein Derzeitiger Code:

    Spoiler anzeigen
    [autoit]

    Brownian_Tree(400)

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

    Func Brownian_Tree($particles)
    Local $sizex = 200, $sizey = 200
    Local $xstart, $ystart, $x, $y
    Local $Bt_array[$sizex][$sizey]
    $hGui = GUICreate("Brownian Tree", $sizex, $sizey)
    GUISetState()
    $Bt_array[Round((UBound($Bt_array) - 1) / 2, 0)][Round((UBound($Bt_array, 2) - 1) / 2, 0)] = "X"
    GUICtrlCreateLabel("", Round((UBound($Bt_array) - 1) / 2, 0), Round((UBound($Bt_array, 2) - 1) / 2, 0), 1, 1)
    GUICtrlSetBkColor(-1, 0x000000)
    $counter = 0
    While $counter <> $particles
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $counter = ' & $counter & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
    $x = Random(0, $sizex - 1, 1)
    $y = Random(0, $sizey - 1, 1)
    If $Bt_array[$x][$y] = "X" Then ContinueLoop
    If $x + 1 <= $sizex - 1 Then
    If $Bt_array[$x + 1][$y] = "X" Then
    $Bt_array[$x][$y] = "X"
    $counter += 1
    GUICtrlCreateLabel("", $x, $y, 1, 1)
    GUICtrlSetBkColor(-1, 0xFF0000)
    ContinueLoop
    EndIf
    EndIf
    If $x - 1 >= 0 Then
    If $Bt_array[$x - 1][$y] = "X" Then
    $Bt_array[$x][$y] = "X"
    $counter += 1
    GUICtrlCreateLabel("", $x, $y, 1, 1)
    GUICtrlSetBkColor(-1, 0xFF0000)
    ContinueLoop
    EndIf
    EndIf
    If $y + 1 <= $sizey - 1 Then
    If $Bt_array[$x][$y + 1] = "X" Then
    $Bt_array[$x][$y] = "X"
    $counter += 1
    GUICtrlCreateLabel("", $x, $y, 1, 1)
    GUICtrlSetBkColor(-1, 0xFF0000)
    ContinueLoop
    EndIf
    EndIf
    If $y - 1 >= 0 Then
    If $Bt_array[$x][$y - 1] = "X" Then
    $Bt_array[$x][$y] = "X"
    $counter += 1
    GUICtrlCreateLabel("", $x, $y, 1, 1)
    GUICtrlSetBkColor(-1, 0xFF0000)
    ContinueLoop
    EndIf
    EndIf
    While True
    $rnd = String(Random(1, 4, 1))
    Switch $rnd
    Case "1"
    If $x + 1 > $sizex - 1 Then ContinueLoop
    $x += 1
    Case "2"
    If $x - 1 < 0 Then ContinueLoop
    $x -= 1
    Case "3"
    If $y + 1 > $sizey - 1 Then ContinueLoop
    $y += 1
    Case "4"
    If $y - 1 < 0 Then ContinueLoop
    $y -= 1
    EndSwitch
    If $x + 1 <= $sizex - 1 Then
    If $Bt_array[$x + 1][$y] = "X" Then
    $Bt_array[$x][$y] = "X"
    $counter += 1
    GUICtrlCreateLabel("", $x, $y, 1, 1)
    GUICtrlSetBkColor(-1, 0xFF0000)
    ExitLoop
    EndIf
    EndIf
    If $x - 1 >= 0 Then
    If $Bt_array[$x - 1][$y] = "X" Then
    $Bt_array[$x][$y] = "X"
    $counter += 1
    GUICtrlCreateLabel("", $x, $y, 1, 1)
    GUICtrlSetBkColor(-1, 0xFF0000)
    ExitLoop
    EndIf
    EndIf
    If $y + 1 <= $sizey - 1 Then
    If $Bt_array[$x][$y + 1] = "X" Then
    $Bt_array[$x][$y] = "X"
    $counter += 1
    GUICtrlCreateLabel("", $x, $y, 1, 1)
    GUICtrlSetBkColor(-1, 0xFF0000)
    ExitLoop
    EndIf
    EndIf
    If $y - 1 >= 0 Then
    If $Bt_array[$x][$y - 1] = "X" Then
    $Bt_array[$x][$y] = "X"
    $counter += 1
    GUICtrlCreateLabel("", $x, $y, 1, 1)
    GUICtrlSetBkColor(-1, 0xFF0000)
    ExitLoop
    EndIf
    EndIf
    WEnd
    WEnd
    Return $Bt_array
    EndFunc ;==>Brownian_Tree

    [/autoit]

    Er funktioniert, allerdings dauert es sehr lange bis eine große Anzahl an Partikeln erstellt wurde (~3Minuten für ~200 Partikel),
    ich denke aber, das es noch einige Möglichkeiten zur Optimierung gibt, vielleicht weiß ja jemand, wie man es noch schneller machen kann.

    Als Ausgabe bzw. Anzeige würde ich gerne das GUI beibehalten, sodass man den Baum wachsen sieht,
    für Vorschläge bin ich dankbar :)

  • Inputbox wird nicht richtig ausgelesen wenn der Timeout abgelaufen ist

    • TheLuBu
    • 26. November 2012 um 09:44

    aus der Hilfedatei

    Code
    Rückgabewert
    Erfolg: 	Gibt den eingegebenen String zurück.
    Fehler: 	Gibt einen Leerstring "" zurück und setzt @error wie folgt:
    @Error 	0 = Der zurückgegebene String ist gültig.
    	1 = Der Abbrechen-Button wurde gedrückt.
    	2 = Die Timeout Wartezeit wurde erreicht.
    	3 = Die Eingabe-Box konnte nicht dargestellt werden. Dies passiert normalerweise durch fehlerhafte Argumente.
    	4 = Die Eingabe-Box konnte nicht auf jedem Monitor dargestellt werden.
    	5 = Ungültige Parameter. Breite ohne Höhe oder Linke Seite ohne obere Seite.
  • Mails über Outlook senden und Body formatieren

    • TheLuBu
    • 21. November 2012 um 15:54

    Hab grade mal in der CreateItem Methode geschaut ;)

    Code
    With objMail
           'Set body format to HTML
           .BodyFormat = olFormatHTML
           .HTMLBody = "<HTML><H2>The body of this message will appear in HTML.</H2><BODY>Please enter the message text here. </BODY></HTML>"
           .Display
        End With

    http://msdn.microsoft.com/en-us/library/…fice.11%29.aspx

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™