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

Beiträge von chip

  • Wer steigt auf Windows 8 um?

    • chip
    • 25. April 2012 um 13:26

    Dich stört echt das nichtmehr existierende Startmenü nicht? Mh ok XD.

  • Wer steigt auf Windows 8 um?

    • chip
    • 25. April 2012 um 13:16

    Hi,

    mich würde mal interessieren wer auf Windows 8 umsteigt oder auch nicht. Eine Begründung warum ihr umsteigt oder warum nicht wäre gut.

    Ich persönlich werde nicht umsteigen, da sich unter der Haupe einfach zu wenig im Vergleich zu Win 7 getan hat.

  • Osterformel nach Lichtenberg

    • chip
    • 25. April 2012 um 12:52

    Hi,

    fragt mich nicht wozu man das brauchen kann XD. Aber hier mal eine Funktion um den Ostersonntag nach der Osterformel von Lichtenberg (nicht von Gauß) zu berechnen:

    Spoiler anzeigen
    [autoit]

    ; #FUNCTION# ;===============================================================================
    ;
    ; Name...........: osterformel
    ; Description ...: Berechnet an welchem Tag in einem gegebenen Jahr Ostersonntag ist
    ; AutoIt Version : V3.3.8.1
    ; Syntax.........: osterformel($jahr)
    ; Parameters ....: $jahr - Die Jahreszahl
    ; Return values .: Success - Returns : Das Datum wann Ostersonntag ist
    ; Author ........: chip
    ;

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

    Func osterformel($jahr)
    $a = Mod($jahr, 19)
    $k = Round($jahr / 100)

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

    $m = 15 + Round((3 * $k + 3) / 4) - Round((8 * $k + 13) / 25)

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

    $d = Mod(19 * $a + $m, 30)
    $s = 2 - Round((3 * $k + 3) / 4)
    $r = Round($d / 29) + (Round($d / 28) - Round($d / 29)) * Round($a / 11)
    $og = 21 + $d - $r
    $sz = 7 - Mod(($jahr + Round($jahr / 4) + $s), 7)
    $oe = 7 - Mod(($og - $sz), 7)

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

    $os = ($og + $oe) - 1

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

    If $os > 31 Then
    Return ($os - 31 & ". April")
    Else
    Return ($os & ". März")
    EndIf

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

    EndFunc ;==>osterformel

    [/autoit]
  • Textdatei zeilenweise durchsuchen

    • chip
    • 25. April 2012 um 11:47

    Sie wiederspricht aber deiner Aussage das FileReadLine beim auffinden aller Ergebnisse in der Textdatei langsamer ist hehe.

  • Autoit GUI bei Focus eines Edit CTRL code ausführen

    • chip
    • 25. April 2012 um 10:06

    ControlGetFocus in einer Schleife prüfen.

    Edti: Bugfix war schneller

  • Textdatei zeilenweise durchsuchen

    • chip
    • 25. April 2012 um 08:19
    Zitat von AspirinJunkie


    ArraySearch sucht nur nach kompletter Übereinstimmung eines Array-Elementes mit dem Vergleichswert.

    Nein das stimmt nicht. Schau die den sechsten Parameter von ArraySearch an also "iCompare" (in der letzten Version hieß der Parameter noch "iPartial"). Dadurch wird innerhalb von ArraySearch ein StringinStr ausgeführt.


    AspirinJunkie keine Ahnung was dein Testscript beweißen soll.

    Hier mal ein Beispiel welches "echte" Ergebnisse liefert.

    HIer einmal mit _ArraySearch dazu die Testdatei "ende.txt" nehmen bei der die zu Suchende Zeile ganz am Ende steht. Das ganze macht bei _ArraySearch() ein Suchzeit von 0.56 ms und bei FileReadLine macht es 0.74 ms.

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    #include <File.au3>

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

    Dim $filequelle = @ScriptDir & "\ende.txt"
    Dim $search = "ganzamende"
    Dim $array

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

    $t = TimerInit()

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

    _FileReadToArray($filequelle, $array)
    _ArraySearch($array, $search)

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

    $t = TimerDiff($t) / 1000
    ConsoleWrite("_ArraySearch(): " & Round($t, 2) & " ms" & @CRLF)

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

    $t = TimerInit()

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

    $file = FileOpen($filequelle, 0)
    While 1
    $line = FileReadLine($file)
    If $line = $search Then
    EndIf
    If @error = -1 Then ExitLoop
    WEnd
    FileClose($file)
    $t= TimerDiff($t) / 1000
    ConsoleWrite("FileReadLine(): " & Round($t, 2) & " ms" & @CRLF)

    [/autoit]

    Und hier ein Beispiel bei der das gesuchte Wort mehrmals vorkommt, der einfachheithalber hab ich _ArrayFindAll genommen, da es intern ganz einfach nur _ArraySearch verwendet. Dazu passend die Testdatei "mehrere.txt". Das Ergebiss _ArraySearch braucht 1.11 ms und FileReadLine nur 0.71ms.

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    #include <File.au3>

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

    Dim $filequelle = @ScriptDir & "\mehrere.txt"
    Dim $search = "dazwischen"
    Dim $array

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

    $t = TimerInit()

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

    _FileReadToArray($filequelle, $array)
    _ArrayFindAll ($array, $search)

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

    $t = TimerDiff($t) / 1000
    ConsoleWrite("_ArraySearch(): " & Round($t, 2) & " ms" & @CRLF)

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

    $t = TimerInit()

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

    $file = FileOpen($filequelle, 0)
    While 1
    $line = FileReadLine($file)
    If $line = $search Then
    EndIf
    If @error = -1 Then ExitLoop
    WEnd
    FileClose($file)
    $t= TimerDiff($t) / 1000
    ConsoleWrite("FileReadLine(): " & Round($t, 2) & " ms" & @CRLF)

    [/autoit]

    Dateien

    mehrere.txt 844,8 kB – 449 Downloads ende.txt 844,81 kB – 457 Downloads
  • Textdatei zeilenweise durchsuchen

    • chip
    • 24. April 2012 um 21:16

    lass mich raten du hast dir noch nie angeschaut wie FileReadToArray und ArraySearch arbeiteten. Sonst wüsstest du das die Kombo aus FileReadToArray + ArraySearch länger dauert als direkt FileReadLine + stringInStr.

  • Textdatei zeilenweise durchsuchen

    • chip
    • 24. April 2012 um 21:04
    Zitat von minx

    Mit einer Schleife die Zeilen einzeln zu laden halte ich nicht für geeignet für diesen Zweck. Gerade wenn du größere "Datenbanken" analysieren willst, lade doch zu Anfang die gesamte Datei in einen Array, dann kannst du auch ganz perfekt Zeilenweise suchen. StringSPlit kannst du dann natürlich immernoch verwenden. Die Datei sollte nur nicht größer als der RAM sein ;)

    minx

    Was langsamer ist als Zeilenweise auslesen.

  • ControlGetPos Problem

    • chip
    • 24. April 2012 um 19:39

    So?

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <Misc.au3>
    #include <WinAPI.au3>
    #include <WindowsConstants.au3>

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

    HotKeySet("{LEFT}", "links")
    HotKeySet("{RIGHT}", "rechts")

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

    Dim $buttons[10]
    Dim $buttinid = 0
    Dim $pos
    Dim $altbuttonhandler = 0

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

    $hwndMain = GUICreate("Form1", 543, 443, 192, 124)
    $Combo1 = GUICtrlCreateCombo("Combo1", 48, 48, 145, 25)
    $buttons[0] = GUICtrlCreateButton("Button1", 48, 104, 75, 25, $WS_GROUP)
    $buttons[1] = GUICtrlCreateButton("Button2", 136, 104, 75, 25, $WS_GROUP)
    $buttons[2] = GUICtrlCreateButton("Button3", 224, 104, 75, 25, $WS_GROUP)
    $buttons[3] = GUICtrlCreateButton("Button4", 312, 104, 75, 25, $WS_GROUP)
    $buttons[4] = GUICtrlCreateButton("Button5", 408, 104, 75, 25, $WS_GROUP)
    $buttons[5] = GUICtrlCreateButton("Button6", 48, 144, 75, 25, $WS_GROUP)
    $buttons[6] = GUICtrlCreateButton("Button7", 136, 144, 75, 25, $WS_GROUP)
    $buttons[7] = GUICtrlCreateButton("Button8", 224, 144, 75, 25, $WS_GROUP)
    $buttons[8] = GUICtrlCreateButton("Button9", 312, 144, 75, 25, $WS_GROUP)
    $buttons[9] = GUICtrlCreateButton("Button10", 408, 144, 75, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)
    GUISetState(@SW_MAXIMIZE)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    EndSwitch

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

    WEnd

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

    Func _Buttonpos($buttinid)
    If Not $altbuttonhandler = "" Then
    GUICtrlSetPos($altbuttonhandler, $pos[0], $pos[1], $pos[2], $pos[3])
    EndIf

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

    $altbuttonhandler = $buttons[$buttinid]
    $pos = ControlGetPos("", "", $buttons[$buttinid])

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

    GUICtrlSetPos($buttons[$buttinid], -1, -1, @DesktopWidth / 2, @DesktopHeight - 200); Button wird vergrößert

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

    EndFunc ;==>_Buttonpos

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

    Func links()
    If Not $buttinid = 0 Then
    $buttinid = $buttinid - 1
    _Buttonpos($buttinid)
    EndIf
    EndFunc ;==>links

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

    Func rechts()
    If $buttinid < 9 Then
    $buttinid = $buttinid + 1
    _Buttonpos($buttinid)
    ConsoleWrite($buttinid)
    EndIf
    EndFunc ;==>rechts

    [/autoit]
  • ControlGetPos Problem

    • chip
    • 24. April 2012 um 17:55

    Zwar ist mir der tiefere Sinn dahinter nicht klar, aber so gehts:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <Misc.au3>
    #include <WinAPI.au3>
    #include <WindowsConstants.au3>

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

    $hwndMain = GUICreate("Form1", 543, 443, 192, 124)
    $Combo1 = GUICtrlCreateCombo("Combo1", 48, 48, 145, 25)
    $Button1 = GUICtrlCreateButton("Button1", 48, 104, 75, 25, $WS_GROUP)
    $Button2 = GUICtrlCreateButton("Button2", 136, 104, 75, 25, $WS_GROUP)
    $Button3 = GUICtrlCreateButton("Button3", 224, 104, 75, 25, $WS_GROUP)
    $Button4 = GUICtrlCreateButton("Button4", 312, 104, 75, 25, $WS_GROUP)
    $Button5 = GUICtrlCreateButton("Button5", 408, 104, 75, 25, $WS_GROUP)
    $Button6 = GUICtrlCreateButton("Button6", 48, 144, 75, 25, $WS_GROUP)
    $Button7 = GUICtrlCreateButton("Button7", 136, 144, 75, 25, $WS_GROUP)
    $Button8 = GUICtrlCreateButton("Button8", 224, 144, 75, 25, $WS_GROUP)
    $Button9 = GUICtrlCreateButton("Button9", 312, 144, 75, 25, $WS_GROUP)
    $Button10 = GUICtrlCreateButton("Button10", 408, 144, 75, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)
    GUISetState(@SW_MAXIMIZE)

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

    Dim $ICtrlId, $pos
    Dim $check = 0

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    EndSwitch

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

    If _IsPressed(09) And $check = 0 Then
    $check = 1
    ElseIf Not _IsPressed(09) And $check = 1 Then
    $check = 0
    _Buttonpos()
    EndIf
    WEnd

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

    Func _Buttonpos()
    If Not $ICtrlId = "" Then
    GUICtrlSetPos($ICtrlId, $pos[0], $pos[1], $pos[2], $pos[3])
    EndIf

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

    Local $control = ControlGetFocus($hwndMain)
    Local $hHandle = ControlGetHandle($hwndMain, "", $control); Handle des selektierten Controls holen
    $ICtrlId = _WinAPI_GetDlgCtrlID($hHandle); CtrlId aus dem Handle erstellen

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

    $pos = ControlGetPos("", "", $ICtrlId)

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

    GUICtrlSetPos($ICtrlId, -1, -1, @DesktopWidth / 2, @DesktopHeight - 200); Button wird vergrößert

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

    EndFunc ;==>_Buttonpos

    [/autoit]
  • Ressourcen (Bilder, etc.) in Script einbinden

    • chip
    • 24. April 2012 um 14:15

    Hier der Post von UEZ: [ offen ] Grafik(en) in *.exe einbinden ohne Fileinstall

  • GUIRegisterMsg Taste abfragen

    • chip
    • 24. April 2012 um 12:43

    Also ich würde das einfach so machen:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <Misc.au3>
    #include <WindowsConstants.au3>

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

    $Form1 = GUICreate("Form1", 625, 443, 192, 124)
    $Combo1 = GUICtrlCreateCombo("Combo1", 80, 64, 145, 25)
    $Button1 = GUICtrlCreateButton("Button1", 104, 136, 75, 25, $WS_GROUP)
    $Button2 = GUICtrlCreateButton("Button2", 200, 136, 75, 25, $WS_GROUP)
    $Button3 = GUICtrlCreateButton("Button3", 296, 136, 75, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)

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

    $check = 0
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    EndSwitch
    If _IsPressed(09) Then
    $check = 1
    ElseIf Not _IsPressed(09) And $check = 1 Then
    $check = 0
    MsgBox(0, "", "es wurde losgelassen")
    EndIf
    WEnd

    [/autoit]
  • meincraft -> Block Fantasy I - Sunrise

    • chip
    • 24. April 2012 um 10:54
    Zitat von minx


    chip das liegt nicht an meinem programm sondern am gezwungenen windows-macht-alles-smooth ding, die progressbar füllt sich viel zu langsam.

    Quatsch, deine Berechnung ist schlicht und einfach fehlerhaft.

  • IniReadSection mit mehnren Feldern

    • chip
    • 24. April 2012 um 09:17

    Das ist keine Standardkonforme ini also musst das komplett per Hand mit den String-Funktionen machen.

  • meincraft -> Block Fantasy I - Sunrise

    • chip
    • 24. April 2012 um 08:04

    Habs mir mal grade angeschaut also irgendwas stimmt da mit deinem Progressbar rechts unten so ganz und garnicht. Sie füllt sich langsam bist zweidrittel und dann ist sie auf einen Schlag ganz voll.

  • gerechter verteilen generator

    • chip
    • 24. April 2012 um 07:50

    Folgenden includes sind überflüssig und kannst du weg lassen:

    - ButttonConstants.au3
    - EditConstants.au3
    - StaticConstants.au3
    - WindowsConstants.au3


    Den Teil kannst auch weg lassen:

    Spoiler anzeigen
    [autoit]

    $box1 = 0
    $box2 = 0
    $box3 = 0
    $box4 = 0
    $box5 = 0
    $box6 = 0
    $box7 = 0
    $box8 = 0
    $box9 = 0
    $box10 = 0

    [/autoit]
  • HTTP-Request wird nicht empfangen

    • chip
    • 23. April 2012 um 19:50

    Ok dann halt vorgekaut ;):

    [autoit]

    TCPStartup()
    $MainSocket = TCPListen("127.0.0.1", 80)
    Do
    $ConnectedSocket = TCPAccept($MainSocket)
    Until $ConnectedSocket <> -1

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

    While 1
    $recv = TCPRecv($ConnectedSocket, 2048)
    ConsoleWrite($recv)
    WEnd

    [/autoit]
  • HTTP-Request wird nicht empfangen

    • chip
    • 23. April 2012 um 18:56

    Schau dir mal das Beispiel in der Hilfe genauer an, dann siehst deinen Fehler: http://translation.autoit.de/onlinehilfe/functions/TCPRecv.htm

  • MSN Messenger mit Autoit

    • chip
    • 22. April 2012 um 21:32

    Geht recht einfach:

    [autoit]

    While 1
    WinWait("[CLASS:TabbedHostWndClass]")
    $titel = WinGetTitle("[CLASS:TabbedHostWndClass]", "")
    $neutitel = StringSplit($titel, "<", 2)
    WinSetTitle("[CLASS:TabbedHostWndClass]", "", $neutitel[0])
    WEnd

    [/autoit]
  • wie kann ich die Anzahl Menueinträge vom eigenen AutoIt-Programm abfragen (vertikal, nicht horizontal)

    • chip
    • 20. April 2012 um 20:10

    Zähl doch einfach beim erstellen der Menüeinträge mit dann weißt es :).

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™