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. autoBert

Beiträge von autoBert

  • Durchschnitt errechnen

    • autoBert
    • 25. November 2012 um 19:36

    Und noch ein Lösungsvorschlag:

    Spoiler anzeigen
    [autoit]

    ;#include <array.au3>
    #include <File.au3>
    #include <array.au3>

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

    Global $aFile, $sSep = @TAB ;Trenner evtl. anpassen

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

    _FileReadToArray(@ScriptDir & "\2dAverage.txt", $aFile)
    ;_ArrayDisplay($aFile)
    Global $a2D[$aFile[0]][2]
    _ArrayDelete($aFile, 0)
    For $i = 0 To UBound($aFile) - 1
    $aSplit = StringSplit($aFile[$i], $sSep, 2)
    $a2D[$i][0] = $aSplit[1]
    $a2D[$i][1] = StringReplace($aSplit[0],",",".")
    Next

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

    ;Summierung
    $aRes = _ArrayAverage2D($a2D)
    _ArrayDisplay($aRes, "Durchschnitt")

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

    Func _ArrayAverage2D(ByRef $avArray)
    Local $sActCol, $iActCol = -1, $sRes, $iRes
    Local $aTmp = _ArrayUnique($avArray)
    _ArrayDelete($aTmp, 0)
    _ArraySort($aTmp)
    Local $aRes[4][UBound($aTmp)+1]
    For $i = 0 To UBound($aTmp) -1
    $aRes[0][$i+1] = $aTmp[$i]
    Next
    $aRes[0][0] = "Nr"
    $aRes[1][0] = "Summe"
    $aRes[2][0] = "Anzahl"
    $aRes[3][0] = "Durchschnitt"
    For $i = 0 To UBound($avArray) - 1
    For $j = 0 To UBound($aRes,2)-1
    ConsoleWrite($avArray[$i][0]&@TAB&$avArray[$i][1]&@CRLF)
    If $aRes[0][$j] = $avArray[$i][0] Then
    $aRes[1][$j] += $avArray[$i][1]
    $aRes[2][$j] += 1
    EndIf
    Next
    Next
    For $j = 1 To UBound($aRes,2)-1
    $aRes[3][$j] = $aRes[1][$j] / $aRes[2][$j];evtl. noch runden
    Next
    Return $aRes
    EndFunc ;==>_ArrayAverage2D

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

    Edit: einer von uns beiden hat die Aufgabenstellung nicht richtig erfasst,ich komme auf ein ganz anderes Eregebnis.

    mfg autoBert

  • GUICtrlGetState gibt bei Checkboxen falschen Status zurück

    • autoBert
    • 24. November 2012 um 20:49

    Seltsamerweise kann mn aber mit

    [autoit]

    GUICtrlSetState

    [/autoit]

    $GUI_CHECKED setzen und imeigentlchen Sinn ist dies ja auch ein Teil des Status und auch in der Status-Tabelle aufgeführt. Da ich ja aber schon eine Lösung habe schliesse ich hier.

    mfg autoBert

  • GUICtrlGetState gibt bei Checkboxen falschen Status zurück

    • autoBert
    • 24. November 2012 um 16:47
    Zitat von Tweaky

    Da steht nichts von checked oder unchecked ;)


    Unter

    Zitat

    Erfolg: Gibt den Status zurück. Die Werte findet man unter GUICtrlSetState

    und laut der dort vorhandenen Statustabelle:

    Zitat

    Bemerkungen


    Status-Tabelle
    Status Kommentare
    No Change 0
    $GUI_UNCHECKED Markierung von Radiobutton, Checkbox oder eines ListViewItems wird entfernt
    $GUI_CHECKED Radiobutton, Checkbox oder ein ListViewItem wird markiert
    ...
    $GUI_SHOW Das Control wird sichtbar. Auf ein TabItem-Control angewendet, wird der vorderste Tab angezeigt
    $GUI_HIDE Das Control wird unsichtbar
    $GUI_ENABLE Das Control kann benutzt werden
    $GUI_DISABLE Das Control wird grau dargestellt (kann nicht benutzt werden)
    ...

    Alles anzeigen

    ist $GUI_CHECKED im Status enthalten.

    mfg autoBert

  • GUICtrlGetState gibt bei Checkboxen falschen Status zurück

    • autoBert
    • 24. November 2012 um 15:53

    GUICtrlGetState sollte doch bei einer angehackten, sicht- und auswählbren Checkbox den Status 81 ($GUI_CHECKED=1 + $GUI_SHOW=16 + $GUI_ENABLE=64) zurückgeben, es wird aber 80 zurück gegeben. Ich habe zwar schon einen Workaround:

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <Constants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>

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

    Opt('MustDeclareVars', 1) ;Variablen müssen vor Benutzung deklariert werden

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

    Global $idChkBoxes[6], $Msg, $iStatus
    Global $hGui = GUICreate("Ckeckbox-Demo", 300, 300)

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

    For $i = 0 To 5
    $idChkBoxes[$i] = GUICtrlCreateCheckbox($i + 1 & ". Checkbox", 20, 40 + $i * 30, 250)
    GUICtrlSetState($idChkBoxes[$i], $GUI_CHECKED)
    Next
    GUICtrlSetState($idChkBoxes[Random(0, 2, 1)], $GUI_DISABLE)
    GUICtrlSetState($idChkBoxes[Random(3, 5, 1)], $GUI_HIDE)
    Global $idBtnCheck = GUICtrlCreateButton("Check", 10, 250, 80)

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

    GUISetState(@SW_SHOW)
    While 1
    $Msg = GUIGetMsg()
    Switch $Msg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $idBtnCheck
    #cs ungewolltes Ergebis wenn Checkbox unsichtbar oder disbled
    For $i = 0 To 5
    If BitAND(GUICtrlRead($idChkBoxes[$i]), $GUI_CHECKED) Then
    ConsoleWrite($i + 1 & ". ist angeCHECKED ")
    Else
    ConsoleWrite($i + 1 & ". Checkbox ist NICHT angeCHECKED ")
    EndIf
    ConsoleWrite(GUICtrlRead($idChkBoxes[$i]) & @CRLF)
    Next
    #ce
    For $i = 0 To 5
    $iStatus = GUICtrlGetState($idChkBoxes[$i])
    If BitAND(GUICtrlRead($idChkBoxes[$i]), $GUI_CHECKED) And $iStatus = BitOR($GUI_ENABLE, $GUI_SHOW) Then
    ConsoleWrite($i + 1 & ". Checkbox ist angeCHECKED und auswählbar und sichtbar ")
    Else
    ConsoleWrite($i + 1 & ". Checkbox ist NICHT angeCHECKED oder nicht auswählbar oder nicht sichtbar ")
    EndIf
    ConsoleWrite($iStatus & @TAB & GUICtrlRead($idChkBoxes[$i] )& @CRLF)
    Next
    EndSwitch
    WEnd

    [/autoit]

    trotzdem würde mich interessieren warum dies so ist. Ich benutze noch AutoIt 3.3.6.1

    mfg autoBert

  • Speicher Leak?

    • autoBert
    • 23. November 2012 um 19:20

    Zum steigenden zugesicherten Speicher: lass doch einfch einmal _ReduceMemory weg und bebachte dann den zugesicherten Speicher

    mfg autoBert

  • Check Boxen abwählen

    • autoBert
    • 23. November 2012 um 18:56

    Dafür kannst du

    [autoit]

    ControlCommand

    [/autoit]

    verwenden. BeiControlClick verwendest du auch die Parameter falsch.

  • Button nicht erreichbar?

    • autoBert
    • 23. November 2012 um 14:51
    Zitat von AquaBall

    Vermutlich kann ich den HTML-Code nicht korrekt lesen!?


    deswegen ja:

    Zitat von autoBert

    Am besten nennst du mal die WebSite, dnn nn man es selbst testen

    mfg autoBert

  • FileDelete möchte ein Icon nicht löschen

    • autoBert
    • 22. November 2012 um 23:22
    Zitat von Make-Grafik

    Ja, ist auch ein bischen blöd in der Deutschen Hilfe (Ich gehe mal davon aus das du da nachgeschaut hast?)


    Da die dt. Hilfe afaik 1:1 übersetzt ist, kann ich mir nicht vorstellen das es im Original besser versrändlich ist, vor allem die Beispiele der engl. Hilfe sind in der dt. auch evtl durch weitere ergänzt. Alsp ist imho die dt. Hilfe keinesfalls schlechter als die englische.

    mfg autoBert

  • Autoit Vorgang wiederholen, TXT auslesen Zeile +1

    • autoBert
    • 22. November 2012 um 23:09

    Hallo vism,

    [autoit]

    _IENavigate($IE, "javascript:MarkAll('Form_Liste')", 0)

    [/autoit]

    ist keine gültige URL. Beschreibe bitte dein Vrhben etws genauer.Vielleicht findert sich j dnn eine Lösung für das Problem.

    mfg autoBert

  • Mehrere Checkboxen mit unterschiedlichen Funktionen

    • autoBert
    • 22. November 2012 um 22:58

    Hallo mirko2002,

    das ganze lässt sich sich sicherlich mit einem 2D-Array lösen. Du solltest dir auch die Hilfe zu GuiCtrlRead genau durch lesen und dazu ein kleines Testprogramm schreiben. [ gelöst ] GUICtrlGetState gibt bei Checkboxen falschen Status zurück anschauen.

    mfg autoBert

  • Server Vertrauensstellung mit AutoIT lösen

    • autoBert
    • 22. November 2012 um 22:42

    Hallo M@rc,

    ich sehe hier ein AutoIt spezifisches Problem. Warum kann die 2. Firma das Programm nicht auf dem eigenen Server installieren.

    @Mod/Admin bitte Thema beobachten, das Forum ist nicht dafür gedacht Lizenzprobleme zu lösen,

    danke autoBert

  • Zweidimensionales Array filtern und berechnen

    • autoBert
    • 21. November 2012 um 15:46

    Hier noch ein Ansatz der mit x-beliebig vielen zu summierenden "Spalten" funtioniert:

    Spoiler anzeigen
    [autoit]

    ;#include <array.au3>
    #include <File.au3>
    #include <arraySort2D_MC.au3>

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

    Global $aFile

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

    _FileReadToArray(@ScriptDir & "\2dSum.txt", $aFile)
    _ArrayDisplay($aFile)
    Global $a2D[$aFile[0]][2]
    _ArrayDelete($aFile, 0)
    For $i = 0 To UBound($aFile) - 1
    $aSplit = StringSplit($aFile[$i], " ",2)
    $a2D[$i][0] = $aSplit[0]
    $a2D[$i][1] = $aSplit[1]
    Next
    _ArrayDisplay($a2D, "2D unsortiert")

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

    ;Sortierung
    $bench_start = TimerInit()
    ;Func _arraySort2D_MC(ByRef $avArray, $ColOrder, $iStart=0,$iEnd=0,$iDesc=0,$bDelDuplictes=False)
    _arraySort2D_MC($a2D, "0|1%N", 1)
    $bench_end = Round(TimerDiff($bench_start), 2)
    ConsoleWrite("Laufzeit _arraySort2D_MC: " & $bench_end & " ms!" & @CRLF)
    _ArrayDisplay($a2D, "2D sortiert nach Col 0 ")

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

    ;Summierung
    $aRes = _ArraySum2D($a2D)
    _ArrayDisplay($aRes,"Summen")
    Func _ArraySum2D(ByRef $avArray)
    Local $sActCol, $iActCol=-1, $sRes, $iRes,$aRes[2][UBound($avArray)]
    For $i = 0 To UBound($avArray) - 1
    If $sActCol <> $avArray[$i][0] Then ;Spaltenwechsel
    $iActCol +=1
    $aRes[0][$iActCol] = $avArray[$i][0]
    $sActCol = $avArray[$i][0]
    EndIf
    $aRes[1][$iActCol] += $avArray[$i][1]
    Next
    ReDim $aRes[2][$iActCol+1]
    Return $aRes
    EndFunc ;==>_ArraySum2D

    [/autoit]

    benötigt wird dazu noch die UDF zum 2D-Arrays zu sortieren aus meiner Signatur.

    Und noch eine Lösung die ohe diese UDF auskommt:

    Spoiler anzeigen
    [autoit]

    ;#include <array.au3>
    #include <File.au3>
    #include <array.au3>

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

    Global $aFile

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

    _FileReadToArray(@ScriptDir & "\2dSum.txt", $aFile)
    ;_ArrayDisplay($aFile)
    Global $a2D[$aFile[0]][2]
    _ArrayDelete($aFile, 0)
    For $i = 0 To UBound($aFile) - 1
    $aSplit = StringSplit($aFile[$i], " ", 2)
    $a2D[$i][0] = $aSplit[0]
    $a2D[$i][1] = $aSplit[1]
    Next

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

    ;Summierung
    $aRes = _ArraySum2D($a2D)
    _ArrayDisplay($aRes, "Summen")

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

    Func _ArraySum2D(ByRef $avArray)
    Local $sActCol, $iActCol = -1, $sRes, $iRes
    Local $aTmp = _ArrayUnique($avArray)
    _ArrayDelete($aTmp, 0)
    _ArraySort($aTmp)
    Local $aRes[2][UBound($aTmp)]
    For $i = 0 To UBound($aTmp) - 1
    $aRes[0][$i] = $aTmp[$i]
    Next
    For $i = 0 To UBound($avArray) - 1
    For $j = 0 To UBound($aRes,2)-1
    ConsoleWrite($avArray[$i][0]&@TAB&$avArray[$i][1]&@CRLF)
    If $aRes[0][$j] = $avArray[$i][0] Then $aRes[1][$j] += $avArray[$i][1]
    Next
    Next
    Return $aRes
    EndFunc ;==>_ArraySum2D

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

    Diese ist bei wenigen auf zu addierenden "Spalten" schneller:

    Spoiler anzeigen
    [autoit]

    ;#include <array.au3>
    #include <File.au3>
    #include <array.au3>

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

    Global $aFile

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

    _FileReadToArray(@ScriptDir & "\2dSum.txt", $aFile)
    ;_ArrayDisplay($aFile)
    Global $a2D[$aFile[0]][2]
    _ArrayDelete($aFile, 0)
    For $i = 0 To UBound($aFile) - 1
    $aSplit = StringSplit($aFile[$i], " ", 2)
    $a2D[$i][0] = $aSplit[0]
    $a2D[$i][1] = $aSplit[1]
    Next

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

    ;Summierung
    $aRes = _ArraySum2D($a2D)
    _ArrayDisplay($aRes, "Summen")

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

    Func _ArraySum2D(ByRef $avArray)
    Local $sActCol, $iActCol = -1, $sRes, $iRes
    Local $aTmp = _ArrayUnique($avArray)
    _ArrayDelete($aTmp, 0)
    _ArraySort($aTmp)
    Local $aRes[2][UBound($aTmp)]
    For $i = 0 To UBound($aTmp) - 1
    $aRes[0][$i] = $aTmp[$i]
    Next
    For $i = 0 To UBound($avArray) - 1
    For $j = 0 To UBound($aRes,2)-1
    ConsoleWrite($avArray[$i][0]&@TAB&$avArray[$i][1]&@CRLF)
    If $aRes[0][$j] = $avArray[$i][0] Then $aRes[1][$j] += $avArray[$i][1]
    Next
    Next
    Return $aRes
    EndFunc ;==>_ArraySum2D

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

    mfg autoBert

  • Wie baue ich eine Menüleiste ein

    • autoBert
    • 20. November 2012 um 16:46
    Zitat von autoBert

    du scheinst nicht sehr lese freudig zu sein, deshalb muss ich mich leider selbst zitieren:

    Wann lernst du endlich vernünftige Beiträge zu erstellen?

    Zitat von heyhey83

    bekomme da eine fehler meldung

    welche, oder glaubst du jemand macht sich die Mühe deinen unleserliches Skript zu formatieren?

    Zitat von heyhey83

    ich kapier das nicht


    dann arbeite die Hilfebeispiele durch bis du die Grundlagen intus hast.

    mfg autoBert

  • AutoIt Screensaver als SCR File speichern

    • autoBert
    • 20. November 2012 um 02:42

    Hallo Facemix,

    du kompilierst es zur EXE und benennst es danach um. Siehe dazu Beispiel für einen Bildschirmschoner

    mfg autpBert

  • Wie baue ich eine Menüleiste ein

    • autoBert
    • 20. November 2012 um 00:11

    Hallo heyhey83,

    du scheinst nicht sehr lese freudig zu sein, deshalb muss ich mich leider selbst zitieren:

    Zitat von autoBert

    formatiere die Skripte in deinen Beiträgen richtig, das Skript in #19 sieht fürchterlich aus. Am besten bleibst du dazu in der Quellcodeansicht. Denke daran du wilst Hilfe, wenn du es den anderen unnötig schwer machst, wirst du keine bekommen.

    Das bei dir kein Menü erscheint liegt daran dass du es vor der GUI erstellen willst, hast du dir das Beuspiel in der Hilfe nicht angesehen? Ausserdem solltest du dich entscheiden ob du im GUIOnEventMode oder im MsgLoop-Modus skripten willst, lies dir dazu am besten die GUI-Referenz jn der Hilfe durch.

    mfg autoBert

  • Wie baue ich eine Menüleiste ein

    • autoBert
    • 19. November 2012 um 22:22
    Zitat

    GUICtrlCreateMenu
    Erstellt eine Menüleiste für die GUI.

    Zitat

    Run

    Startet ein externes Programm.

    beides aus der dt. Hilfeübersetzungdie dir durchlesen solltest.

    mfg autoBert

  • Inputfeldeingaben in Variable speichern

    • autoBert
    • 19. November 2012 um 18:50

    Dein Skript kann nicht funktionieren da du das 2.Input in Zeile 10 wieder leerst

  • FileDelete möchte ein Icon nicht löschen

    • autoBert
    • 19. November 2012 um 14:27
    Zitat von lachi

    Mal gucken, vielleicht kann mir einer von euch sagen, wo ich einen Fehler eingebaut habe.


    Wenn du ein ansonsten lauffähigesSkript einstellst sicherlich.So verweise ich auf:

    Zitat von aus Hilfe zu FileDelete

    Einige Dateiattribute können ein Löschen unmöglich machen.

    mfg autoBert

  • index.html mit autoit starten

    • autoBert
    • 17. November 2012 um 14:00
    Zitat von James1337

    autoBert Ich denke die Frage nach dem Icon war eher auf die "Lösung" mit einer .hta-Datei bezogen.
    heyhey83 Du kannst das Icon im HTML-Quelltext ändern, das wird von mshta.exe aber ignoriert...

    und warum nennst du ihm dann einen AutoIt-Befehl? Richtig die Ursprungsfrage war:

    Zitat von heyhey83

    Ach ja wie ädere ich in das icon also will nicht das autoit icon drauf haben

  • index.html mit autoit starten

    • autoBert
    • 17. November 2012 um 13:27

    Hallo heyhey83,

    • man kann (und soll) seine Beiträge berbeiten anstatt mehrere Beiträge hintereinander zu schreiben. Dies wird übicherweise als Push-Versuch eines Wichtigtuers interpretiert und das Thema ignoriert.
    • formatiere die Skripte in deinen Beiträgen richtig, das Skript in #19sieht fürchterlich aus. Am besten bleibst du dazu in der Quellcodeansicht. Denke daran du wilst Hilfe, wenn du es den anderen unnötig schwer machst, wirst du keine bekommen.
    • Lerne die Grundlagen von HTML und AutoIt, damit du dir solche peinlichen Fragen:
      Zitat von heyhey83

      wie bekomme ich da ein icon rein soll ich das in den html quelltext ändern

      sparen kannst, wenn du dich schon nicht mehr daran erinnern kannst was deine Frage war:

      Zitat von heyhey83

      Ach ja wie ädere ich in das icon also will nicht das autoit icon drauf haben

    mfg autoBert

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™