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

  • Arraywerte als Text zusammenfassen

    • Andy
    • 4. Januar 2014 um 14:00

    so?

    [autoit]

    Global $Array[22] = [187, 190, 191, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 221, 222, 224, 228, 230, 231, 232, 237, 239]
    ReDim $array[UBound($array) + 2] ;array aufbereiten für Suche

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

    $text = "" ;arrayinhalt nach textinhalt
    $delimiter = "" ;Trennzeichen im Text

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

    For $i = 0 To UBound($Array) - 3 ;array durchlaufen
    If $array[$i + 1] = $array[$i] + 1 And $array[$i + 2] = $array[$i] + 2 And $delimiter <> " to " Then ;3 aufeinanderfolgende zahlen gefunden?
    $delimiter = " to " ;dann "to"
    $text &= $array[$i] & $delimiter ;"to" einfügen
    ElseIf $array[$i + 1] <> $array[$i] + 1 Or $delimiter <> " to " Then ;nicht aufeinanderfolgende gefunden
    $delimiter = ", " ;ansonsten Trennzeichen ", "
    $text &= $Array[$i] & $delimiter ;zusammen mit arrayinhalt
    EndIf
    Next
    $text = StringTrimRight($text, 2) ;letztes Komma weg
    ReDim $array[UBound($array) - 2] ;array wiederherstellen

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

    $vorgabe = "187, 190, 191, 206 to 215, 221, 222, 224, 228, 230 to 232, 237, 239"
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $vorg = ' & $vorgabe & @CRLF) ;### Debug Console
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $text = ' & $text & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console

    [/autoit]


    //EDIT: kürzer^^

  • Animierte prozedurale Landschaft aus impliziten Gleichungen

    • Andy
    • 4. Januar 2014 um 00:02
    Zitat

    Der Deal hier ist wohl eher die Mathematik. ASM empfiehlt sich

    so ist es, dann kann man nämlich auch komplett die sin(), cos() und tan()-Funktionen durch konstanten ersetzen, da diese sowieso aufeinanderfolgen.
    Allerdings bringt diese Beschleunigung in AutoIt garnichts, da der Interpreter in etwa dieselbe Zeit für ein v1+v2 braucht wie für ein sin().
    In einer Compilersprache bringt das Faktor 20-30 an Geschwindigkeit! /
    Ich such mir gerade nen Wolf....
    //EDIT gefunden Ersetzen von Sinus in einer Schleife, beschleunigt den code um Faktor 30 8o

  • Animierte prozedurale Landschaft aus impliziten Gleichungen

    • Andy
    • 3. Januar 2014 um 23:38

    Faszinierend, was man mit diesen "billigen" Formeln alles machen kann...
    Da würde ich mich gerne nochmal in eine Vorlesung setzen und einige Wochen Tips, Tricks und Kniffe abschauen.
    Hat jemand einen guten Tip für etwas lesbare, also verständliche Kost abseits von Differentialrechnung (kann das zwar noch einigermassen, aber das ist soooo mühselig...:( )

  • Animierte prozedurale Landschaft aus impliziten Gleichungen

    • Andy
    • 3. Januar 2014 um 21:28

    Wieso starten wir nicht einfach ein Gemeinschaftsprojekt, an dem JEDER AutoIt-User mitarbeiten kann?

    Die "Engine" zum Berechnen einzelner Frames haben wir ja :D , die Handvoll Formeln ganz zum Schluss in eine C/C++/PowerBasic-Dll zu Giessen ist dann nur noch der letzte Schritt!
    Bis dahin könnte aber jeder, der Interesse hat, einzelne "Bauteile" beisteuern.

    Anbei ein weiterer Schritt in Sachen "Landscape", beim Sonnenauf- und Untergang werden die Farben angepasst

    Spoiler anzeigen
    [autoit]

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

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

    Global $nFrames = 60
    Global $nFPS = 30
    If $nFrames < $nFPS Then $nFrames = $nFPS
    Global $aBitmaps[$nFrames][4]
    For $i = 0 To $nFrames - 1
    $aBitmaps[$i][2] = _WinAPI_CreateCompatibleDC(0)
    $tBMI = DllStructCreate($tagBITMAPINFO)
    DllStructSetData($tBMI, 1, DllStructGetSize($tBMI) - 4)
    DllStructSetData($tBMI, 2, 400)
    DllStructSetData($tBMI, 3, 400)
    DllStructSetData($tBMI, 4, 1)
    DllStructSetData($tBMI, 5, 32)
    $aDIB = DllCall('gdi32.dll', 'ptr', 'CreateDIBSection', 'hwnd', 0, 'ptr', DllStructGetPtr($tBMI), 'uint', 0, 'ptr*', 0, 'ptr', 0, 'uint', 0)
    $aBitmaps[$i][1] = $aDIB[0]
    $aBitmaps[$i][0] = $aDIB[4]
    _WinAPI_SelectObject($aBitmaps[$i][2], $aBitmaps[$i][1])
    $aBitmaps[$i][3] = DllStructCreate("dword[160000]", $aBitmaps[$i][0])
    Next
    Global $fPi = 4 * ATan(1)
    $hGUI = GUICreate("Animated Landscape")
    $hDC = _WinAPI_GetDC($hGUI)
    $hStatusLabel = GUICtrlCreateLabel("0/" & $nFrames, 0, 400 / 2 - 7, 400, 14, 1)
    $hProgressLabel = GUICtrlCreateLabel("", 50, 400 / 2 + 15, 1, 2)
    GUICtrlSetBkColor(-1, 0x00FF00)
    $hStepLabel = GUICtrlCreateLabel("", 50, 400 / 2 + 20, 1, 2)
    GUICtrlSetBkColor(-1, 0x00FF00)
    GUISetState()
    For $iFrame = 1 To $nFrames
    $SunX = -14 + ((39 / ($nFrames - 1)) * ($iFrame - 1))
    $SunY = -(27 / 380) * $SunX ^ 2 + (297 / 380) * $SunX + (945 / 38)
    $fAmbientLight = ($SunY / 27)
    $iFrameTimer = TimerInit()
    $sun_redcol = Int(0.111 * $iFrame ^ 2 - 6.667 * $iFrame + 100) ;100-0-100 ;farbe der sonne, morgens+abends rot, mittags gelb
    ConsoleWrite(" " & $iFrame & ' $sun_redcol = ' & $sun_redcol & @CRLF)

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

    For $fy = 0 To 400
    $y = -15 + $fy * 0.125
    For $fx = 0 To 400
    $x = -20 + $fx * 0.125
    $fDirectionalLight = Int((Abs($SunX - ($x + 6)) / 39) * 60)
    $iColorARGB = RGB(2 * $sun_redcol, 200 - $sun_redcol, 200 - $sun_redcol)
    If $y > Sin($x) And $y > Cos($x) And $y < Tan($x) And $y < Sin($fPi * $x) + 7 And $x < 9 Then
    $iColorARGB = RGB(2 * $sun_redcol, 0, 0)
    ElseIf ((Mod(Abs($x) - $fPi / 2, 2 * $fPi) - $fPi) ^ 2 + ($y - 8.5 + $x ^ 2 / 250) ^ 2) < 5 And $x < 8 Then
    $iColorARGB = RGB(2 * $sun_redcol, 87 + Int(87 * $fAmbientLight) - $fDirectionalLight, 0)
    ElseIf ((Mod(Abs($x) + $fPi / 2, 2 * $fPi) - $fPi) ^ 2 + ($y - 7.5 + $x ^ 2 / 280) ^ 2) < 5 And $x < 11 Then
    $iColorARGB = RGB(2 * $sun_redcol, 41 + Int(41 * $fAmbientLight) - $fDirectionalLight, 0)
    ElseIf $y <= ATan(10 - $x) Then
    $iColorARGB = RGB(2 * $sun_redcol, 87 + Int(87 * ($fAmbientLight)) - $fDirectionalLight, 0)
    ElseIf $y < ($iFrame / 75) * Sin($x * 2) ^ 2 + 0.5 And $y < $x - 9 Then
    $iColorARGB = RGB(2 * $sun_redcol, 0, 87 + Int(87 * $fAmbientLight) - $fDirectionalLight)
    ElseIf Abs(30 - ($x - $SunX) ^ 2 - ($y - $SunY) ^ 2) = 30 - ($x - $SunX) ^ 2 - ($y - $SunY) ^ 2 Then
    $iColorARGB = RGB(0xFF, 0xFF - 2 * $sun_redcol, 0);0x00FFFF00
    EndIf
    DllStructSetData($aBitmaps[$iFrame - 1][3], 1, $iColorARGB, $fy * 400 + $fx + 1)
    Next
    GUICtrlSetPos($hStepLabel, 50, 400 / 2 + 20, 300 * ($fy / 400), 2)
    Next
    GUICtrlSetData($hStatusLabel, "Loading Scene, Frame " & $iFrame & "/" & $nFrames & " (" & Round((TimerDiff($iFrameTimer) / 1000) * ($nFrames - $iFrame)) & "s remaining)")
    GUICtrlSetPos($hProgressLabel, 50, 400 / 2 + 15, 300 * ($iFrame / $nFrames), 2)
    _WinAPI_BitBlt($hDC, 0, 0, 400, 400, $aBitmaps[$iFrame - 1][2], 0, 0, $srccopy)
    Next
    AdlibRegister("DrawScene", 1000 / $nFPS)
    $iFrame = 0
    $iAnimator = 1

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

    While GUIGetMsg() <> -3
    WEnd

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

    Func RGB($R, $G, $B)
    If $R <= 0 Then $R = 0
    If $G <= 0 Then $G = 0
    If $B <= 0 Then $B = 0
    Return '0x00' & Hex($R, 2) & Hex($G, 2) & Hex($B, 2)
    EndFunc ;==>RGB

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

    Func DrawScene()
    $iFrame += $iAnimator
    If $iFrame = $nFrames - 1 Or $iFrame = 0 Then $iAnimator *= -1
    _WinAPI_BitBlt($hDC, 0, 0, 400, 400, $aBitmaps[$iFrame][2], 0, 0, $srccopy)
    EndFunc ;==>DrawScene

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

    Weiterhin wird jetzt jeder gerenderte Frame angezeigt.

    Um das mal jetzt weiterzuspinnen, die Bäume könnten Schatten abhängig vom Sonnenstand bekommen, richtiges "Gras" bzw. "Strand" könnte eingefügt werden, Wolken, Schiff fährt in den Sonnenuntergang, Tiere laufen durch den Wald uswusf.
    Prozeduraler Sound?!
    Jeder einzelne dieser "Bausteine" kann von jeweils einem Programmierer unabhängig vom Rest beigesteuert werden.
    Es ist einfach nur die "Prozedur" für den jeweiligen Baustein zu erstellen, welcher dann einfach ins Script eingefügt werden kann...

    Würde euch so etwas interessieren?
    Jedenfalls würde man sehr viel über Mathematik erfahren :rock:

    UEZ,
    man könnte sich das Gras und die Bäume abschauen ^^

  • Animierte prozedurale Landschaft aus impliziten Gleichungen

    • Andy
    • 3. Januar 2014 um 17:16
    [autoit]

    DllStructSetData($tBMI, 1, DllStructGetSize($tBMI) - 4)
    DllStructSetData($tBMI, 2, 400)
    DllStructSetData($tBMI, 3, 400)
    DllStructSetData($tBMI, 4, 1)
    DllStructSetData($tBMI, 5, 32)

    [/autoit]

    Made my day :rofl: , wer braucht schon Konstanten, die vielleicht doch wieder geändert werden :thumbup:

  • Kleinster HD-Kurzfilm

    • Andy
    • 3. Januar 2014 um 02:58

    Durch SB-Link nach hier inpiriert^^

    Spoiler anzeigen
    [autoit]

    $user32 = DllOpen("user32.dll")
    $gdi32 = DllOpen("gdi32.dll")
    $w = 400
    $h = 400

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

    Global $pi = 4 * ATan(1)

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

    $hgui = GUICreate("Landschaft", $w, $h)
    $hdc_gui = GetDC($hgui)
    GUISetState()
    $xmin = -20
    $xmax = 30
    $dx = ($xmax - $xmin) / $w
    $ymin = -15
    $ymax = 35
    $dy = ($ymax - $ymin) / $h

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

    For $fy = 0 To $w Step 1
    For $fx = 0 To $h Step 1
    $x = $xmin + $fx * $dx
    $y = $ymin + $fy * $dy

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

    ;**************************************************************************************************************
    If $y > Sin($x) And $y > Cos($x) And $y < Tan($x) And $y < Sin($pi * $x) + 7 And $x < 9 Then
    $col = 0x0

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

    ElseIf ((Mod(Abs($x) - $pi / 2, 2 * $pi) - $pi) ^ 2 + ($y - 8.5 + $x ^ 2 / 250) ^ 2) < 5 And $x < 8 Then
    $col = 0x00AD00

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

    ElseIf ((Mod(Abs($x) + $pi / 2, 2 * $pi) - $pi) ^ 2 + ($y - 7.5 + $x ^ 2 / 280) ^ 2) < 5 And $x < 11 Then
    $col = 0x005200

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

    ElseIf $y <= ATan(10 - $x) Then
    $col = 0x0052ad

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

    ElseIf $y < 0.8*Sin($x*2 - 9) ^ 2 + 0.5 And $y < $x - 8 Then
    $col = 0xad0000

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

    Else
    $col = 0xADFFFF
    EndIf
    ;**************************************************************************************************************

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

    pix($hdc_gui, $fx, $h - $fy, $col)
    Next
    Next

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

    While GUIGetMsg() <> -3
    WEnd

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

    Func pix($dc, $x, $y, $color) ;pixel mit farbe an koordinaten setzen
    DllCall($gdi32, "long", "SetPixel", "long", $dc, "long", $x, "long", $y, "long", $color)
    EndFunc ;==>pix

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

    Func GetDC($handle)
    $dc = DllCall($user32, "int", "GetDC", "hwnd", $handle)
    Return $dc[0]
    EndFunc ;==>GetDC

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


    Bitte noch eine Sonne dazu, und Schmetterlinge.... 8o

  • Zeichen finden

    • Andy
    • 2. Januar 2014 um 22:08

    Hi,
    obwohl bereits auf gelöst gesetzt, im Anhang (Appendix) der AutoIt-Hilfe findet sich eine Ascii-Tabelle....

  • Perseus 2.6 - Caffeinated Cat

    • Andy
    • 2. Januar 2014 um 00:18

    Hi,
    ich weiss nicht, ob mein "Problem" überhaupt hier hin gehört.
    Beim Testen des OpenGl-Beispiels ist mir aufgefallen, dass alle 6 Cores meiner CPU auf Höchstleistung laufen?!
    Daraufhin habe ich andere AutoIt-OpenGl-Beispiele ausprobiert und dort dieses Phänomen auch festgestellt.
    Ist das bei euch auch so und an was liegt das?
    System Win7-64
    FX-6300
    Radeon 7790
    Catalyst-Treiber 13.12
    OpenGL-Version 6.14.10.12618

  • SB-Zitate #6

    • Andy
    • 1. Januar 2014 um 22:59

    Hehe, hab ab und zu herzlich gelacht!
    Bin ja normalerweise nicht dafür, aber man sollte die Sprüche nummerieren um den "Spruch des Jahres" zu wählen :D
    Hab da einen eindeutigen Favoriten :rock:

    Spoiler anzeigen

    Surprise Maddafakka! *BÄM*"

  • Übergabe eines Kommandozeilenergebnisses an Variable

    • Andy
    • 1. Januar 2014 um 17:48

    misterspeed,
    teste mal bitte, ob dein Script auch funktioniert, wenn du im Pfadnamen Leerzeichen drin hast

  • Übergabe eines Kommandozeilenergebnisses an Variable

    • Andy
    • 1. Januar 2014 um 17:42

    Hi,
    probiere das mal.
    Wenn in der Msgbox etwas dargestellt wird, einfach mit deinem Programmnamen testen

    [autoit]

    #include <Constants.au3>

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

    $programm = "dir"
    $parameter = "c:" & Chr(92) & "program files (x86)" ;Backslash....:(

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

    ;ggf auskommentieren
    ;~ $programm="C:\Program Files\RevoUninstaller\RevoCmd.exe"
    ;~ $parameter="/m keepass"

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

    $string = '"' & $programm & " """ & $parameter& """"
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $string = ' & $string & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console

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

    ;'"' setzt bei Pfadnamen mit enthaltenen Leerzeichen erforderlichen Anführungsstriche
    Local $out = Run(@ComSpec & " /c " & $string, @ScriptDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD) ;Programm anpassen
    Local $line
    While 1
    $line &= StdoutRead($out)
    If @error Then ExitLoop
    WEnd
    MsgBox(0, "StdoutRead", $line)

    [/autoit]


    //EDIT, klasse, dass die Backslash nicht dargestellt werden ;(

  • ImageSearch funktioniert nicht.

    • Andy
    • 1. Januar 2014 um 16:08

    Hi,
    wieder einmal wird bestätigt, dass auch für einfachste Botterei ein Minimalskill erforderlich ist...
    Seltsam, dass die ImageSearch() bei tausenden Bottern einwandfrei funktioniert, aber in diesem Fall nicht?!

    Wieso ich auf Botten komme? :rofl:
    Siehe die bisherigen Threads des TE seit seiner Anmeldung...

    alpines,
    hier im Forum existieren seit Jahren mehrere Scripte, welche die Funktionen des "Bildersuchens" (was nichts anderes ist als eine Pixelsuche) in nativem AutoItcode bei Suche auf dem gesamten Screen in einigen ms vollführt.
    Das Programm hilft sogar beim Erstellen der Suchbilder, welche sogar animiert sein können...also bewegt, s. bspw. den oben von mir verwendeten Smilie.
    Fensterinhalte werden bei der Suche automatisch gescrollt, und es wird auf das zu suchende Bild geklickt, viel einfacher geht es nicht mehr...

    Da wird weder mit einem Disassembler rumgespielt, noch ist gewaltiger Code erforderlich.

  • AutoIt Versions-Archiv und Diskussionsthread (3.3.8.1 bis 3.3.10.2, Stand 30.12.13)

    • Andy
    • 31. Dezember 2013 um 17:13
    Zitat von water

    Korrigiere mich bitte, wenn ich das falsch sehe. Aber Betas werden doch released, damit die Benutzer testen und Fehler melden können bevor eine neue Stable rausgegeben wird. Wenn dann aber "keiner" (gestatte mir die Übertreibung - eigentlich sollten wir ja bei den Fakten bleiben ) testet, wessen "Schuld" ist das dann?

    Ich korrigiere dich nicht, jeder darf seine Meinung haben und behalten. 8)

    Die Frage (und die Antwort darauf ist die Lösung des gesamten "Problems" !) ist, wieso "keiner" die über ein ganzes Jahr verteilten Betas getestet hat. Wahrscheinlich aus genau dem Grund, wieso ich auch nur sporadisch die Betas testete.
    Runterladen, merken, dass damit einige Scripte nicht funktionieren, "neue Features" testen, diese für uninteressant befinden....vergessen...
    Und das mehrmals im Jahr.
    Ich denke, das bringt es auf den Punkt.

    Mich würde mal interessieren mit welchem marketingtechnischen Hintergrund bspw. die "neuen" Features entwickelt wurden. Wurde eine Marktanalyse gemacht, welche die Notwendigkeit der Neuerungen unbedingt erforderlich machte? Hat mal jemand die weltweit 5 grössten AutoIt-Foren durchstöbert um herauszufinden, was der Otto-Normaluser wirklich braucht bzw. welche Probleme auf Anwenderseite in den Foren am häufigsten auftreten?
    Ich weiss, wie hoch der Skill einiger der Entwickler ist. Wahrscheinlich so hoch, dass sie die "einfachen" Probleme der User garnicht nachvollziehen können. Das nennt man Betriebsblindheit, ein in der Branche extrem weit verbreitetes Problem. Da werden Lösungen gezaubert, für die es garkein Problem gibt....

    Wenn man am oberen Ende der Fahnenstange angelangt ist, dann muss man sehr viel Aufwand betreiben, um nur sehr kleine Verbesserungen zu erreichen!

    Zitat von nuts

    Jeder Neuling, der mit MSDN arbeitet, denkt sich dann WTF? Was machen die denn da?

    Was hat denn ein "Neuling" bei MSDN verloren?
    Die gebräuchlichen Konstanten sind alle in AutoIt integriert, und keinesfalls sollen (lt. Konsens im blauen Forum) die "evil Numbers" verwendet werden!
    Ein

    [autoit]

    while Guigetmsg()<>-3
    wend

    [/autoit]

    ist demnach "evil", aber gleichzeitig wird ein gigantischer programmiertechnischer Aufwand getrieben, um bspw. lange Funktionsnamen jetzt in 1-buchstabige Variablennamen pressen und somit "einfacher" verwenden zu können! ?(

  • AutoIt Versions-Archiv und Diskussionsthread (3.3.8.1 bis 3.3.10.2, Stand 30.12.13)

    • Andy
    • 31. Dezember 2013 um 00:42
    Zitat von water

    wie schnell Valik mit einem solchen Herumgenöle abgefahren wäre.

    Glaubst du ernsthaft, er hätte sich die Blöße gegeben in einer Woche 3 Stables abzuliefern? Ich nicht!
    Er hätte sich auch eher die Hand abhacken lassen, als Konstanten zu ändern. Aber wenn das unbedingt hätte sein müssen, dann hätte er es auch stichhaltig begründen können ;)
    Und ja, er ist nicht (nur) aufgrund der Querelen im Forum gegangen.

    Zitat von water

    aber nur wenige User vom deutschen Forum sich an der Weiterentwicklung beteiligen.

    Interessant, einige haben sich beteiligt. Daraufhin wurden Konstanten geändert. Aber hundertprozentig haben das "unsere" User nicht so gewollt! Dazu kenne ich sie zu gut ;)

    Nochmal, um das endgültig klar zu stellen:
    Ich meckere nicht, weil irgendwelche "Weiterentwicklungen" nicht funktionieren. Das interessiert mich nicht.
    Ich meckere, weil Scripte, die mit der 3.3.8.1 einwandfrei liefen, mit der 3.3.10.0 nicht mehr funktionieren.
    Ich weiß auch, wieviel Arbeit in AutoIt steckt. Daher kann ich nicht nachvollziehen, wieso man erlaubt, dass diese Arbeit so einfach niedergemacht werden kann.
    Ich habe nicht um eine neue Version gebettelt, so wie ich das sehe, wollten einige "Entwickler" aus welchen Gründen auch immer ( Profilneurose?! ) schnellstens eine neue Version releasen. Und das ist jetzt gründlich in die Hose gegangen.
    Sich dann aber hinzustellen, und die "Schuld" den Anwendern zuzuschieben, die nicht fleissig genug gebetatestet haben, ist gelinde gesagt nur noch lächerlich.....

  • AutoIt Versions-Archiv und Diskussionsthread (3.3.8.1 bis 3.3.10.2, Stand 30.12.13)

    • Andy
    • 30. Dezember 2013 um 09:36
    Zitat von minx

    Noch etwas: Das Remove von PlugIns mit der Begründung niemand würde sie nutzen.

    Wie kommen die darauf?
    Die Plugins wurden entfernt, weil niemand der Entwicklergemeinde, also der DEV´s, sie nutzten.
    Ich brauch es nicht, also brauchen es die anderen auch nicht.

    Zitat

    Edit: ein Lut in einer Programmiersprache ist allerdings "überlächerlich" (dafür fällt mir gar kein passendes Wort ein).

    Macht eigentlich nur dann Sinn, wenn man Portabilität gewährleisten will. Also auf verschiedenen Systemen das definiert gleiche Ergebnis erhalten MUSS.
    Aber idR kein Grund, ein "Tabellenbuch" als Code abzubilden. Juckt mich ehrlich gesagt auch nicht.
    Zeigt aber wieder einmal, mit welchen programmiertechnischen Mitteln Code/Bugs gefixt werden, im Gegenzug aber "neue" Features reingedrückt werden (müssen). Irgendwie zieht mich das immer weiter runter ;(

    Zitat

    Wenn ich zu anderen Sprachen größere Beispiele suche laufen die auch meistens nicht ohne weiteres, da in diesem Fall die verschiedenen Compiler, Versionen, seltsame Includes und sonstige Kunstgriffe ausschlaggebend sind.

    Zitat

    Wer Versionen 3.3.9.12 bis 3.3.9.23 hat, bitte melden!

    Ist es jetzt soweit gekommen, dass man die maintenance.build-Nummern mit angeben muss, damit ein Script anstandslos läuft?! :rofl:

    //EDIT keine schlechte Idee wäre in diesem Zusammenhang ein "Online-Compiler", bei dem man die Versionsnummer auswählen kann. So könnte man sich auch bei "alten" Scripten den richtigen Compiler/Interpreter "ertesten"

  • AutoIt Versions-Archiv und Diskussionsthread (3.3.8.1 bis 3.3.10.2, Stand 30.12.13)

    • Andy
    • 30. Dezember 2013 um 00:52

    3.3.8.1 (die letzte Stable) lief problemlos, Tweaky, bleib dabei^^

    Ich habe kein Problem damit, dass man "unter der Oberfläche" optimiert um, wie Jon in einigen Threads erklärt hatte, AutoIt "clean" für die VC-Compiler zu machen. Sehe ich alles ein, auch dass es dabei zu Problemen kommen kann. Wenn das das interne Debugging vereinfacht, dann muss das eben sein. Ob AutoIt jetzt 5 oder 10% schneller läuft....wen juckt das wirklich?

    Was ich nicht einsehe ist, dass "oben", also das was wir Anwender zu sehen bekommen, verändert wird. Neue Features hin oder her, wenn ich sie nicht brauche, dann muss ich sie auch nicht benutzen. Wenn aber "alte" Features unter den Füssen weggezogen werden, dann wird das komplette Konzept unbrauchbar.
    Einige Dinge habe ich ja schon gefunden, wer sagt mir denn, dass nicht auch andere Funktionen, Konstanten, UDF´s usw. "optimiert" wurden?

    Eine Stable heisst nicht umsonst so. Ich bin nicht Versionengeil. Wenn es 3 Jahre dauert, bis es wieder eine "gute" Version gibt, auch gut...aber eine Stable rauszubringen, damit jetzt fleissig das Betatesting vollzogen wird, welches anscheinend doch nicht sooo interessant für die allermeisten User gewesen ist, wirkt etwas angestrengt.
    Wer geht davon aus, dass bei Scripten, die bei Alt-F5 nicht laufen, nicht ein Bug vorliegt, sondern ein Feature? 8|

    Es stellt sich mir sowieso die Frage, ob die "neuen" Features überhaupt für die Mehrzahl der AutoIt-Nutzer so immens wichtig waren?!

  • AutoIt Versions-Archiv und Diskussionsthread (3.3.8.1 bis 3.3.10.2, Stand 30.12.13)

    • Andy
    • 29. Dezember 2013 um 21:44

    Das Problem sind nicht die Scripte auf meiner Platte, die kann ich automatisiert umbauen/ändern.
    Viele online verfügbare Scripte laufen nicht oder bringen falsche Daten. Schade.

    Zitat

    Du kannst dich ja direkt im engl. Forum äußern und den Devs deine Meinung sagen

    Habe ich. Nach einigem Hin und her bekam ich gesagt, ich solle doch besser kommerzielle Software für Anwendungen im professionellen Bereich verwenden (ich verwies darauf, dass ich AutoIt auch in der Firma einsetze) ;(
    Na dann, schreibe ich halt sämtliche für die Firma erstellten AutoIt-Scripte vorsorglich in VBA um, ist scheissaufwendig, ressourcenfressend und langsam, aber ich bin wenigstens sicher, dass die Programme auch in 6 Wochen noch laufen....wenn ein neues Windows rauskommt....

    "Abwärtskompatibilität" ist definitiv mit den aktuellen AutoIt-Versionen gestorben. Ich muss Scripte mit der zum Zeitpunkt des Erstellens aktuellen AutoIt-Version kompilieren damit sie fehlerfrei laufen, und darf keinesfalls eine spätere Version verwenden?!

    Wenn ich mir ansehe, was die POST-Valik-Ära hervorgebracht hat... :thumbdown:
    Wie war heute eine Antwort auf Crash-Potenzial bei Verwendung neuer Funktionen? "....If you do not want to use the new functionality then just do not use it ..."
    Wenn ich die "new functionality" benutze bin ich selber schuld...na dann, viel Spass weiterhin.

  • IniRead & IniWrite wollen nicht so wie ich

    • Andy
    • 29. Dezember 2013 um 20:47

    Hi,
    die "Lösung" mittels StringToBinary() ist imho alles andere als optimal!
    Sämtliche Linefeeds und ggf. auch in Zukunft auftretende Sonderzeichen werden per StringToBinary() nicht entfernt, sie sind im String enthalten und werden sicher später noch zu Ärger führen....
    Man sollte "fehlerhafte" Daten nicht durch das gesamte Programm schleppen, sondern sie direkt so aufbereiten, dass sämtliche weiteren Scriptteile damit einfach weiterarbeiten können.

    Du hast nichteinmal selbst herausgefunden, dass dein String Zeichen enthält, mit denen einige AutoItfunktionen nicht klarkommen. Glaubst du etwa, dass andere Funktionen die "Sonderzeichen" in deinem String ignorieren?

  • IniRead & IniWrite wollen nicht so wie ich

    • Andy
    • 29. Dezember 2013 um 18:15

    Hi,
    kurze Stringanalyse ermittelt Linefeeds chr(10) im Text, welche man mit StringStripWS entfernt

    Spoiler anzeigen
    [autoit]

    #include <Inet.au3>
    #include <String.au3>
    #include <StringConstants.au3>

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

    $IniPath = @ScriptDir & "/Data.ini"

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

    Local $oIE = 'http://www.der-postillon.com/'
    Local $sStart = "<h3 class='post-title entry-title' itemprop='name'>"
    Local $sEnd = '</h3>'
    Local $sQuellcode = _INetGetSource($oIE)
    Local $aQuellcode = _StringBetween($sQuellcode, $sStart, $sEnd)
    Local $aTitle = _StringBetween ($aQuellcode [0],'>','</a>')

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

    for $i=1 to stringlen($atitle[0]) ;text analysieren
    $d=asc(stringmid($atitle[0],$i,1)) ;einzelne buchstaben
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $d = ' & $d & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
    next

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

    ;linefeeds entfernen
    $atitle[0]=StringStripws($aTitle[0],$STR_STRIPLEADING + $STR_STRIPTRAILING + $STR_STRIPSPACES)

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

    IniWrite ($IniPath, "Der-Postillon", "Latest_Title", $aTitle [0])

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

    ConsoleWrite ("Data1: "&$aTitle[0]&@crlf)

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

    $Title = IniRead ($IniPath, "Der-Postillon", "Latest_Title", "fehler");

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

    ConsoleWrite ("Data2: "&$Title)
    ConsoleWrite (@Crlf)

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

    Exit

    [/autoit]
  • AutoIt Versions-Archiv und Diskussionsthread (3.3.8.1 bis 3.3.10.2, Stand 30.12.13)

    • Andy
    • 28. Dezember 2013 um 21:41
    Zitat

    Edit: sieht nicht so aus, als möchte man die Struct ändern, da nun sie der MSDN entspricht und jetzt richtig ist.

    Wie die einzelnen Items der Struct benannt werden ist völlig UNERHEBLICH!
    Was mich aber wirklich ankotzt ist die Tatsache, dass der KONSTANTEN-NAME $tagBITMAPINFO gleich geblieben ist!
    Wer denkt sich denn solch einen Schwachsinn aus?
    Das wäre, als wenn man "einfach so" GUI_EVENT_CLOSE von -3 auf 693 ändern würde....

    WENN man schon die Struct mit allen ihren Items völlig umwirft, dann sollte man auch einfach einen anderen Namen vergeben. DAS ist richtig, und nicht einfach den Inhalt eines Strings verändern, nur weil bei MSDN die Structitems so heissen. (Was wie gesagt für die Funktion der Struct völlig unerheblich ist! )
    Zzt. sind sämtliche Scripte, welche die "alte" Konstante tagBITMAPINFO verwenden, nicht mehr lauffähig. Soll ich nun in sämtlichen Scripten der letzten Jahre Konstanten (wieso heissen die wohl so? ) ersetzen bzw. überprüfen?

    Zitat

    In der Hilfe steht bei mir die richtige Beschreibung:

    Ich vermute in der "neuen" Hilfe...
    Die ist definitiv falsch, da eine KONSTANTE ihren Wert (Inhalt) per definitionem nicht ändert!

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™