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

Beiträge von Andy

  • AutoItObject - OOP für AutoIt

    • Andy
    • 20. Februar 2010 um 14:09
    Zitat

    Also, bisher sind Static-Variablen in AutoIt eingebaut

    :thumbup: man dankt...

  • AutoItObject - OOP für AutoIt

    • Andy
    • 20. Februar 2010 um 13:10

    Hi,

    [autoit]

    Local Static $vStatic

    [/autoit]

    Habe den Thread im engl. Forum bzgl. der statischen Variablen nicht mehr weiter verfolgt, aber soweit ich mich erinnere, sind lt. den Dev´s statische Variablen in AuoIt auch in Zukunft nicht vorgesehen. Kann man nun statische Variablen nutzen ohne die OO-Funktionen einzusetzen (Einbindung der "AutoitObject.au3" vorausgesetzt) ?

  • Größer als 8

    • Andy
    • 19. Februar 2010 um 12:43

    Hallo!
    Das ist wieder mal ein wunderschönes Beispiel für "Usability" in einer GUI, wie sie NICHT sein sollte.
    Wieso gehst du nicht hin und machst eine "Standard"-Größenabfrage, wie sie für Schriften üblich ist?

    Spoiler anzeigen
    [autoit]

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

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

    $Form1 = GUICreate("Auswahl")
    $Combo1 = GUICtrlCreateCombo("Schriftgröße ", 40, 32, 90, 25)
    GUICtrlSetData(-1, "7 Punkt|6 Punkt|5 Punkt|4 Punkt|3 Punkt|2 Punkt|1 Punkt", "")
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    case $Combo1
    $a=stringleft(guictrlread($combo1),1)
    Msgbox(0,"Schriftgröße",$a,1)

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

    EndSwitch

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

    WEnd

    [/autoit] [autoit][/autoit] [autoit][/autoit]
  • Bezugskalkulation Programm / als Exel abspeicheren

    • Andy
    • 18. Februar 2010 um 15:47

    ...wo wir schon dabei sind, OpenOffice speichert u.a. auch im Excel-Format.
    Tabellenbearbeitung incl AutoIt-Beispiel

  • OpenOffice-Vorlage - Textfelder einer Vorlage ausfüllen

    • Andy
    • 18. Februar 2010 um 15:43

    Hab auch was, allerdings eher für Calc....
    Es sollte aber anhand dessen kein Thema sein, auch für Write Funktionen zu erstellen

  • 3D Rollenspiel

    • Andy
    • 18. Februar 2010 um 08:30
    Zitat

    Hatte mal irrlicht überblickt, aber da scheinen ja kaum funktionen in autoit zu gehen

    Also das was ich in Irrlicht "überblickt" habe (die Demos an sich sind absolut beeindruckend) funktioniert das schonmal ziemlich gut, also ist die "Umgebung" incl aller 3D-Effekte ist nur noch eine Fleißsache oder einfaches copy/paste.
    Wahrscheinlich bist du dir nicht im klaren darüber, daß auch relativ "einfache" MMORPGs mehrere hunderte bis tausende Mannjahre Entwicklung (Grafik & Engines, Story, Texturen usw) beinhalten. Ohne fertige Funktionen, wie sie z.B. Irrlicht bereitstellen, brauchst du garnicht anzufangen, selbst mit 4-5 Leuten siehst du brauchbare Ergebnisse frühestens erst in einigen Monaten.
    Allerdings gibt es doch fix-und fertige Programme, die genau auf deine Anforderungen passen, incl Entwicklungsumgebung und allem drum und dran.
    Als Stichwort werfe ich mal "yofrankie" in dem Raum, damit solltest du fündig werden....

  • HAPPY BIRTHDAY @ UEZ

    • Andy
    • 17. Februar 2010 um 08:34

    Einen glücklichen Herzwunsch auch von mir! :thumbup:

  • Funktionssammlung OpenOffice Calc

    • Andy
    • 14. Februar 2010 um 16:28

    Update der Funktionen, Kleinigkeiten geändert, einige Funktionen hinzugefügt. Demo automatisch ablaufend.
    Kurze Anfrage:
    Sollte man das schon "UDF"-mäßig ausbauen (entsprechende Header und das ganze Fehlerabfang-Brimborium ?)
    Ich würde dann auch die Funktionen noch so ändern, daß die globalen Variablen vermieden werden usw. ggf noch gewünschte Funktionen einbauen.

  • GUICtrlSetTip verschwindet und wird nicht mehr angezeigt.

    • Andy
    • 11. Februar 2010 um 10:49

    Hi,
    bei Scite lässt sich etwas ähnliches feststellen:
    Mauscursor über einen Dateireiter fahren, im Tooltip erscheint der komplette Pfad. Maus nicht bewegen, nach 5 sec verschwindet der Tooltip und erscheint nur wieder, wenn zwischenzeitlich ein anderer Tooltip aufgerufen wurde.

  • Sortierung Sinnung und nicht nach einzelnen Zeichen

    • Andy
    • 11. Februar 2010 um 10:21

    sry, hatte den falschen Link angegeben, die korrigierte Version bearbeitet auch mehrdimensionale Arrays.
    Beruht aber auf dem "natürlichen Vergleich", die Implementierung in eine einfache Sortierfunktion sollte aber nicht das Problem sein....

  • Sortierung Sinnung und nicht nach einzelnen Zeichen

    • Andy
    • 11. Februar 2010 um 10:06

    schau mal, ob http://www.autoitscript.com/forum/index.php?showtopic=83626&st=0&p=598311&#entry598311 dir weiterhilft

    /EDIT/ Link korrigiert

  • Alle Dateien des Netzwerkordners (incl. Unterordner) schreibschützen?

    • Andy
    • 10. Februar 2010 um 17:00

    schau dir mal das flag in der Hilfe zu

    [autoit]

    _FileListToArray

    [/autoit]

    an^^

    /EDIT/
    Um auch die Dateien in den Unterordnern einzubeziehen, empfehle ich die Suche mit "Dateien Ordner rekursiv" hier im Forum ;)

  • Bitmap versenden

    • Andy
    • 10. Februar 2010 um 16:11

    Hi,
    das handle zur Bitmap bringt dir nichts, du willst doch die Bilddaten übertragen.
    Allerdings hast du ein Problem, und das ist die Datenübertragungsrate deines Netzwerks. Die Übertragung von unkomprimierten Bitmaps (das ist das windowsinterne Format) dauert wesentlich länger als die Speicherung und Übertragung des Screens im (kleineren) JPG-Format!
    Die Größe und Qualität der JPG-Datei kannst beeinflussen mittels

    [autoit]

    _ScreenCapture_SetJPGQuality ()

    [/autoit]
  • Einfacher Einstieg?

    • Andy
    • 10. Februar 2010 um 08:24
    Zitat

    ALso wenn etwas nicht geklappt hat (egal was ) darf es nicht ignoriert weren.

    Probleme löst man nicht, Probleme beseitigt man! Ab ins Nul-Device damit^^

    Spass beiseite, alle internen AutoIt-Funktionen geben in

    [autoit]

    @error

    [/autoit]

    den Status des erfolgreichen Funktionsaufrufs zurück.In der Regel sollte nach jeder Funktion dieser Status abgefragt werden. In deinen eigenen erstellten Funktionen kannst (solltest) du das natürlich auch verwenden!

    [autoit]

    fileread("grmblfx.dat",0)
    if @error then msgbox(0,"Fehler","Datei konnte nicht geöffnet werden!")

    [/autoit]
  • Einfacher Einstieg?

    • Andy
    • 10. Februar 2010 um 08:07

    Hallo,
    schau mal nach diesen Funktionen: (einfach draufklicken um die Hilfe angezeigt zu bekommen)

    [autoit]

    EnvGet()
    EnvSet()
    EnvUpdate()

    [/autoit]
  • Script funktioniert nicht

    • Andy
    • 9. Februar 2010 um 16:00
    Zitat

    ich finds ganz schön dreist.

    Du kennst die Sache mit den Krähen und den Augen? ;)

  • String nach zeichen durchsuchen

    • Andy
    • 9. Februar 2010 um 10:38
    Zitat

    Sei´s drum - Back to Topic: Können wir uns darauf einigen das wir als allgemeine Empfehlung zur reinen Überprüfung von Teilstrings StringInStr vorschlagen?

    Abber sischäääärrr!

  • String nach zeichen durchsuchen

    • Andy
    • 9. Februar 2010 um 00:28

    Hi,
    habe einen Vergleich von AutoIt-Funktionen und auch externen dll´s gemacht.
    Die Boyer-Moore.dll (freundlicherweise von einem hiesigen Forenmitglied Namens AspirinJunkie :thumbup: in C erstellt) und die Funktion Findbytes() aus der prospeed.dll sind auch am Start.

    Spoiler anzeigen
    [autoit]

    $post = "Die Vögel singen im Wald abcdefghijklmnopqrstuvwxyz"
    $Pattern = $post
    $pre = ""
    $string = ""
    $hDll = DllOpen("Boyer-Moore.dll")
    $S_DLL = DllOpen("prospeed.dll")

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

    ConsoleWrite(" Stringlänge Suchzeit Boyer-Moore StringInstr FindBytes StringRegExp Stringreplace" & @CRLF)
    For $i = 1 To 18

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

    For $s = 1 To 100
    $string &= Chr(Random(35, 127, 1))
    Next
    $string = StringReplace($string, $post, "") ; $post löschen
    $string &= $string & $post ;string aufpumpen und den $post und ans ende bringen

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

    $t = TimerInit()
    $a1 = BoyerMoore($string, $Pattern, $hDll) ;Boyer-Moore by AspirinJunkie
    $m1 = TimerDiff($t)

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

    $t = TimerInit()
    $a2 = StringInStr($string, $Pattern)
    $m2 = TimerDiff($t)

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

    $t = TimerInit()
    $a3 = _findbytes($string, $Pattern, 0) ;Assemblercode by Frank Abbing
    $m3 = TimerDiff($t)

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

    $t = TimerInit()
    $a = StringRegExp($string, $Pattern)
    $m4 = TimerDiff($t)

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

    $t = TimerInit()
    StringReplace($string, $Pattern, "", 1, 2)
    if @extended then $x=true
    $m5 = TimerDiff($t)

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

    ConsoleWrite(StringFormat(" %10.10s ", StringLen($string)) & _
    StringFormat(" %5.10s ", $m1) & _
    StringFormat(" %5.10s ", $m2) & _
    StringFormat(" %5.10s ", $m3) & _
    StringFormat(" %5.10s ", $m4) & _
    StringFormat(" %5.10s ", $m5) & @CRLF)
    Next

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

    Func BoyerMoore(ByRef $sString, ByRef $sPattern, $hDll = 0)
    Local $aRet = DllCall($hDll, "str", "boyerMoore", "str", $sPattern, "str", $sString)
    If @error Then Return SetError(2, @error, '')
    Return $aRet[0]
    EndFunc ;==>BoyerMoore

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

    Func _findbytes($string_1, $string_2, $count)
    $struct_1 = DllStructCreate("ubyte[" & StringLen($string_1) & "]")
    $struct_2 = DllStructCreate("ubyte[" & StringLen($string_2) & "]")
    DllStructSetData($struct_1, 1, $string_1)
    DllStructSetData($struct_2, 1, $string_2)
    $pos = FindBytes(DllStructGetPtr($struct_1), $count, DllStructGetSize($struct_1), DllStructGetPtr($struct_2), DllStructGetSize($struct_2)) + 1
    ;MsgBox(262144,'Debug line ~' & @ScriptLineNumber,'Selection:' & @lf & '$pos' & @lf & @lf & 'Return:' & @lf & $pos) ;### Debug MSGBOX
    $struct_1 = 0
    $struct_2 = 0
    If $pos = -1 Or $pos = StringLen($string_1) + 1 Then Return 0
    Return $pos
    EndFunc ;==>_findbytes

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

    Func FindBytes($B,$O,$A,$S,$L) ;auszug aus der prospeed.au3
    $S_FindBytes = DllCall($S_DLL, "long", "FindBytes", _
    "long", $B, _
    "long", $O, _
    "long", $A, _
    "long", $S, _
    "long", $L)
    Return $S_FindBytes[0]
    EndFunc

    [/autoit]

    die beiden benötigten dll´s Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

    das ganze sieht dann so aus:

    Spoiler anzeigen
    Code
    Stringlänge     Suchzeit   Boyer-Moore        StringInstr            FindBytes              StringRegExp        Stringreplace
              251             0.11258414             0.02374603             0.11900953             0.04413968             0.00949841       
              651             0.07682540             0.05028572             0.08995556             0.02877460             0.01229206       
             1451             0.08213334             0.11006985             0.08436826             0.04469841             0.01760000       
             3051             0.10308572             0.22991748             0.09274921             0.07850159             0.02877460       
             6251             0.13605081             0.47017148             0.12375874             0.14554922             0.07514921       
            12651             0.22796193             0.95682551             0.17292700             0.28914289             0.12599366       
            25451             0.41346036             1.92007643             0.32126988             0.58359372             0.27713019       
            51051             0.82720010             3.90217192             0.58247626             1.14735252             0.52408895       
           102251             1.64043195             6.92713738             1.19428586             2.37041299             1.09818426       
           204651             2.95205116             16.5526624             2.24162568             4.56594343             2.34666696       
           409451             6.11781664             28.3343274             4.53102279             9.34196944             4.43492119       
           819051             12.3063126             59.2664710             8.59997569             18.5048658             8.95532812       
          1638251             24.1173109             116.817081             17.9654118             37.4114587             18.3084721       
          3276651             50.3566794             227.962492             35.8495283             73.9750443             37.9525889       
          6553451             103.278209             499.063428             74.6891015             145.018431             72.9321743       
         13107051             205.247594             912.923569             146.207967             292.947846             158.535512       
         26214251             384.400531             1813.14245             264.051436             566.840478             286.017915       
         52428651             766.900541             3617.06166             535.991306             1134.43077             577.359971
    Alles anzeigen

    Was man sehr deutlich sieht ist die vernachlässigbar minimale Abweichung der unterschiedlichen Verfahren bei "kleinen" Strings. Ich verwende sehr gerne StringInstr() und überhaupt die AutoIt-Stringbefehle, bin nicht so der RegExp-Fuzzi^^
    Aber bei der Suche in vielen (sehr) großen Dateien ist es ein Unterschied, ob man 10 Minuten auf ein Ergebnis wartet oder nur 1.5 Minuten. Übrigens ist das "alte" DOS-Programm FIND.EXE nur sehr schwer zu toppen (i love it^^)

    AspirinJunkie
    Btw, deine dll bzw der Algorithmus an sich profitiert von der Länge des Suchstrings, je länger der Suchstring, desto schneller.Ein Bekannter von mir sucht große Muster in sehr großen Dateien, ich soll dir bestellen, deine dll sei absolute Spitze und wenn du mal zufällig in Rheinhessen auf einem Weinfest einschlagen solltest sag vorher Bescheid, dann brauchst du dir über die Getränkeversorgung keine Gedanken mehr machen :o)
    In Anlehnung an Beerware haben wir bei uns die SpätleseWare eingeführt, ein sehr gefälliges Lizenzmodell....:)


    /EDIt/ natürlich sieht es anders aus, wenn casesensitiv gesucht wird! Dann ist stringinstr() nicht zu schlagen....

    [autoit]

    StringInStr($string, $Pattern,1) ;Groß- und Kleinschreibung wird berücksichtigt!

    [/autoit]

    Dateien

    dlls.zip 119,21 kB – 280 Downloads
  • GUICtrlSetTip verschwindet und wird nicht mehr angezeigt.

    • Andy
    • 8. Februar 2010 um 17:00

    Das scheint eine Windows-Einstellung zu sein, dieses "Problem" ist mir schon einige Male bei anderen Anwendungen (XP, nicht nur AutoIt) aufgefallen. Habe allerdings auch noch nicht nach Abhilfe gesucht...

  • String nach zeichen durchsuchen

    • Andy
    • 8. Februar 2010 um 16:48
    Zitat

    StringReplace könnte interessant werden, wenn man zusätzlich die genau Anzahl der ! im String benötigt

    erstens das und weil es auch die wesentlich schnellere Variante ist.( bei großen Strings bis zu 7x schneller)

    Zitat

    und vor allem weil StringInStr beim ersten Vorkommen die Suche abbricht

    aber nur, wenn man das auch vorschreibt ;)

    [autoit]

    stringinstr($string,"!",0,1)

    [/autoit]

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™