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

Beiträge von Techmix

  • Unable to open the Script file

    • Techmix
    • 17. Januar 2015 um 12:36

    Nachtrag:
    Ich habe noch weitere Testläufe durchgeführt und mir ist dabei aufgefallen das UPX nicht alleine das Problem darstellt. Ich habe ein Testskript erstellt welches sich unterschiedlich auf Win7 x86 und x64 verhällt.

    Testskript
    [autoit]

    #AutoIt3Wrapper_UseUPX=n
    #AutoIt3Wrapper_UseX64=n

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

    #include <Array.au3>

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

    Global _
    $sData, _
    $aData

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

    if @Compiled Then
    AdlibRegister("_CheckMaster", 150)

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

    if $CmdLine[0] >= 1 Then
    $sData = $CmdLine[1]
    $aData = StringSplit($sData, "|")
    MsgBox(262144, 'Debug line ~' & @ScriptLineNumber, 'Selection:' & @CRLF & '$sData' & @CRLF & @CRLF & 'Return:' & @CRLF & $sData) ;### Debug MSGBOX
    EndIf
    MsgBox(262144, 'Debug line ~' & @ScriptLineNumber, 'Selection:' & @CRLF & '@Compiled' & @CRLF & @CRLF & 'Return:' & @CRLF & @Compiled) ;### Debug MSGBOX
    EndIf

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

    Func _CheckMaster()
    if ProcessExists("AutoIt3.exe") Then Return
    AdlibUnRegister("_CheckMaster")
    Exit
    EndFunc

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

    Nutzt ihr Win7 x86 und kompiliert das Skript kommt bei der Ausführung kein Fehler, ihr müsst nichtmals UPX deaktiviern!
    Jedoch bei Win7 x64 tritt wieder dieser Fehler auf, obwohl x64 nicht genutzt werden soll. Irgendwie wollen die AdLib Funktionen nicht so Arbeiten wie sie sollen! Wenn ihr diese Auskommentiert, und das Kompiliert ausführt gibt es keine Fehlermeldung...

    Weiterer Nachtrag:
    Avast ist Schuld bei den AbLib-Funktionen :P Auf beiden Testrechnern ist Avast installiert, und der AutoIt3- sowie mein Projekt-Ordner als Ausnahmen zugefügt.
    Kompiliere ich mit aktiven Avast lässt es sich nicht mit aktiven oder inaktiven Avast ausführen.
    Kompiliere ich mit inaktiven Avast lässt es sich mit aktiven und inaktiven Avast ausführen.
    Irgendwie stört Avast die AdLib Funktionen und zwar bei der Kompilierung, trotz Ausnahmeregeln. ?(

    Grüsse!

  • Unable to open the Script file

    • Techmix
    • 16. Januar 2015 um 21:08

    Hy,
    Hab lange experimentiert bis ich deinen Fehler bei mir rekonstruieren konnte, und hab des Rätsel Lösung!
    Setze in die erste Zeile deines Skriptes #AutoIt3Wrapper_UseUPX=n kompilieren und ausführen, der Fehler sollte behoben sein.

    Grüsse!

  • ist 8 = 9 ?

    • Techmix
    • 13. Januar 2015 um 14:59

    Das ist die Vollversion?!
    Ich dachte das ist eine Gemoddete Light...

    water:
    Ich wollte niemanden persönlich angreifen! Nur mal vor Augen führen mit welchem Umfang das Verbunden ist...

  • ist 8 = 9 ?

    • Techmix
    • 13. Januar 2015 um 11:29

    Hy, will mich auch mal einschalten.

    Ich habe vor einigen Jahren ein e-Shop System und ein PhpBB Forum Administriert. Alles war supi bis die ersten großen Updates kamen! In dem Shopsystem musste ich händig ein funktionierendes Zahlsystem integrieren - Und durch das Update lief es überhaupt nicht meht! Nichtmals die vorhandenen Artikel waren noch kompitabel zu dem Update, und ich musste die gesammte SQL DB umformatieren und Daten anpassen. Da es um eine Schneiderei ging, war der Umfang überschaubar aber der Zeitaufwand war imens!

    Das Forum war schon ein ganz anderer Schuh, da waren bereits fast 1000 angemeldete User mit entsprechend vielen Postings. Das offensichtilichste Problem waren aber die ganzen Änderungen die zur Laufzeit vorgenommen wurden, diese ließen sich fast alle nicht mehr in der Weise umsetzen wie es die User gewohnt waren. Da gab es ein ziemlich übles Ge-Flame gegenüber allen im Hintergrund agierenden "Admins".

    Habt ihr schonmal einen solchen Umfang wie dieses Forum Administriert, auch noch "Ehrenamtlich" neben dem Beruf und dem RL???

    Mir passen auch viele Dinge nicht seit der Umstellung, aber dann macht euch doch mal einen Überblick über die ToDo unserer Admins! Ich wette das die Liste einige Meter lang ist!! Wenn ihr eigene Groß-Projekte habt, multipliziert dessen Umfang mit dem Faktor >=6 UND macht euch bewusst das dieses Forum keine Eigenentwicklung also Fremd-Source darstellt.
    Und dann sucht eure eigene Nadel im Heuhaufen!

    [Tachilys]
    Da hier sooo viele selbsternannte Profis sind, warum bietet denn keiner seine Hilfestellung an?? Ist Meckern Professionell?? Nicht immer beschweren, selber machen! Holt euch eurer eigenes WaltLab Forum und installiert es auf Xampp, führt eure Änderungen und Verbesserungen lokal durch - und solltet ihr tatsächlich erfolgreich sein, teilt eure Lösungen doch hier mit!

    So könnte jeder Nörgler mal sehen worüber eigentlich Gemeckert wird ^^

    Oder legt einige Hunderter zusammen, lasst einen Php-Profi von WaltLab kommen, und das Forum wieder auf 100% bringen.

    Aber nicht immer beschweren, besser machen!
    [/Tachilys]

    Das soll jetzt keinen Angriff auf Frau TE oder Teilnehmern dieser Unterhaltung sein! Ich krieg nur langsamm echt einen dicken, fetten Hals wenn ich immer diese Beschwerden lese! Wir wissen alle das das Forum nicht bei 100% steht...

    Grüsse.

  • Unable to open the Script file

    • Techmix
    • 12. Januar 2015 um 15:32

    In der Funktion _SearchFiles() hast du die Pfade bei den Ini* und der File Funktion falsch angegeben, die "$Path_s&Test.ini" sind jedenfalls so nicht richtig :D

  • Unable to open the Script file

    • Techmix
    • 12. Januar 2015 um 14:48

    Kann nicht testen, füge am Anfang mal #RequireAdmin ein und teste erneut...

    Edit:
    Mir fiel auf das in deinem Skript viel auskommentiert ist, dir ist klar das alles zwischen #cs und #ce nicht ausgeführt werden kann?
    Leider lässt sich der Source im Forum seht schlecht lesen...

  • Unable to open the Script file

    • Techmix
    • 12. Januar 2015 um 14:12

    Das kann uns nur dein Source verraten ;)

    Da gibt es vielfältige Möglichkeiten, wie ich schon schrieb könnte ein falscher Prozess geschlossen oder angesprochen werden, auch gibt es manchmal Probleme bei ConsoleRead oder auch bei StdOutRead (?)...

    Aber Raten ist immer so eine Sache...

  • Unable to open the Script file

    • Techmix
    • 12. Januar 2015 um 14:06

    Jap genau das meinte ich, das Problem liegt in deinem Sourcecode - Nicht an der Kompilierung, auch nicht an AutoIt3, auch nicht am Virenscanner, usw ;D

    Du solltest dir genau deinen Source anschauen, häufig verwechselt man Variablen oder so. Wenn du den Fehler nicht selbstständig Lokalisieren kannst, bleibt nur noch das Skript hier zu Posten.

    Grüsse!

  • SQLLite.dll can´t be loaded.

    • Techmix
    • 12. Januar 2015 um 13:49

    Kannst die aktuelle Dll aus dem Netz verwenden, musst Googlen.

    Normalerweise soll die Dll aucb aus dem Include erstellt werden, nur leider geht das seit einigen Updates nicht mehr bei mir ^^

  • Unable to open the Script file

    • Techmix
    • 12. Januar 2015 um 13:41

    Hy,
    Virenscanner hast du ja schon angesprochen, deaktivieren dann kompilieren und ausführen - wirst du wohl schon getestet haben.

    Da erinnere ich mich an ein Problem was mein System komplett durcheinander gebracht hatte, und ich andauernde Neustarts machen musste...
    Verwendest du ProcessClose() oder WinClose() OHNE vorige Abfrage ob der Prozess oder die Pid existiert??
    Bei mir hatten die Befehle irgendwelche System-Prozesse geschlossen und jede weitere Ausführung führte zu noch mehr Problemen. Der Witz dabei ist das ich Fehlermeldungen wie "Datei nicht gefunden" erhielt, obwohl ich garnicht mit einer Datei gearbeitet hatte.

    Platziere mal am Anfang deines Scriptes eine MsgBox() und führe dieses anschliessend kompiliert aus. Wenn dir diese MsgBox angezeigt wird, liegt dein Problem in deinem Source!

    Vielleicht hilft's ja.
    Grüsse!

  • SQLLite.dll can´t be loaded.

    • Techmix
    • 12. Januar 2015 um 13:27

    Hallo,
    einfach die SQLight.dll in das Verzeichniss kopieren und das Problem ist gelöst!
    Scheint iwie an der "SQLite.dll.au3" zu liegen, die geht bei mir auch nicht richtig nichtmals im Unkompilierten Zustand. Habe einfach die Dll im Verzeichniss und das Include kannst du dir dann sparen.

    Grüsse!

  • Send / Copy Problme

    • Techmix
    • 8. Januar 2015 um 17:59

    Ich hatte vor einigen Tagen ein ähnliches Problem nur mit der Übertragung von Zahlen im Stringformat in Tcp-IP. Dort habe ich 2 Zahlen aneinandergereiht, mit einem Hochstrich als Trenner gesendet. Aber diese Daten wurden nicht als, das gewünschte Stringformat, übertragen und kamen als Binärdaten an den Client an.
    Ich habe Stundenlang den Fehler gesucht und als ich endlich fündig wurde, hing ich einfach ein Chr(255) an. So musste ich im Client nur den letzten Char entfernen, und es wurde endlich alles so gesendet und empfangen wie ich es auch wollte.

    Der Grund für dieses Verhalten in AU3 ist der Variant-Datentyp! Er ist Fluch und Segen zugleich :D
    Bei dir war es das nicht erkannte Zahlenformat und bei mir der String.

    Solche Problemchen werden noch öfters auf dich zukommen, wenn du dir unsicher bist solltest du dir angewöhnen eine Variable direkt in das Format umzuwandeln welches du erwartest.

    Grüsse!

  • Send / Copy Problme

    • Techmix
    • 8. Januar 2015 um 12:29

    Versuche mal den Inhalt des ClipBoards mit $b = Number(ClipGet()) umzuwandeln.

  • ExcludeFunc - Abhängigkeitsprüfung von verschachtelten Funktionen

    • Techmix
    • 2. Januar 2015 um 18:56

    Hallo Community,

    ich möchte ein kleines Skript mit euch teilen welches mir schon oft beim Debuggen von unübersichtlichen Programmcode geholfen hat. Auch lässt es sich wunderbar auf einen >4000 Zeiler anwenden, um dort einfacher abhängige Variablen und Funktionen auslesen zu können.

    Wer kennt das nicht, da schaust dir ein altes Skript an oder Fremdsource und willst wissen wie eine einzelne Funktion aufgebaut ist. Aber durch den ganzen Code Wirr-Warr mußt du dir erstmal einen Überblick über den gesammten Source verschaffen, und das kostet eben Zeit...

    Da kommt die ExcludeFunc() Funktion zur Hilfe, du musst diese Funktion einfach in dem Skript Includen wo sich auch die zu prüfende Funktion befindet - In diesem Beispiel nennen wir diese einfach _BigFunc().
    Jetzt fügst du einfach in deinem Skript einen Befehl zu worin sich die Aufgerufene Funktion befindet: ExcludeFunc("_BigFunc").
    Sobald du dein Skript startest, wird eine neue Datei in @ScriptDir mit dem Funktionsnamen erstellt @Scriptdir & "\_BigFunc.au3".
    Dieses erstellte Skript enthällt die gewünschte Funktion mit allen Includes (C&P aus dem Main-Skript) und allen verwendten globalen Variablen (mit Werten) sowie aufgerufene Funktionen.

    Oft kann dieser Source nicht ausgeführt werden - soll er auch gar nicht! Es ist zum Debuggen einzelner Funktionen gedacht und/oder um sich durch die Abhängikeitsprüfung eine bessere Übersicht verschaffen zu können. Wenn aufgerufene Funktionen oder Variablen aus dem Main-Skript fehlen dann weil sich diese nicht in dessen Datei befinden - Includierte Quellcodes werden nicht ausgewertet sondern einfach eingebunden.

    In Zeile 241 und 242 befinden sich einfache Anwendungsbeispiele, müssen nur De-Kommentiert werden.

    Spoiler anzeigen
    [autoit]

    #Region - Includes -----------------------------------------------------------------------------------------------------------------
    #AutoIt3Wrapper_UseX64=n
    #AutoIt3Wrapper_UseUPX=n

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

    #RequireAdmin
    #include-once
    #include <Array.au3>
    #include <String.au3>

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

    #EndRegion -------------------------------------------------------------------------------------------------------------------------

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

    #cs - ReadMe -----------------------------------------------------------------------------------------------------------------------

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

    AutoIt Version: 3.3.12.0
    Script: ExcludeFunc.au3
    Progammversion: 0.12
    Author: Techmix

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

    Programm Funktion:
    Ich verwende dieses Script um Funktionen aus z.B. unübersichtlichen Skripten incl.
    aller Funktions- und Variablen- Abhängikeiten in ein einzelnes Script zu übertragen.
    Damit lässt sich prima Debuggen und auch der Fokus auf eine Funktion lenken.

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

    Update auf V0.12:
    Tiefenanalyse auch auf verwendete Unterfunktionen ausgedehnt
    Variablenerkennung verbessert

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

    #ce --------------------------------------------------------------------------------------------------------------------------------

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

    Func _ExcludeFunc($sFuncName)
    Local _
    $sFile = @ScriptFullPath, _
    $sFunc = "Func " & $sFuncName&"(" & _StringBetween(FileRead(@ScriptFullPath), "Func " & $sFuncName&"(", "EndFunc"&@CRLF)[0] & @CRLF&"EndFunc", _
    $sSource, _
    $aSourceCode, _
    $sSourceCode, _
    $aFunctions, $aTemp, $aArray, $sTemp, $sChr, $sGlobal, $iSkipFunc, _
    $aIncludes[100], $aIncludedFuncs[100], $aInternFuncs[100], _
    $aVariables[1000], $aGlobalVariables[1000], $iCount=0

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

    ; Includes auslesen
    ; Einfacherweise werden einfach alle #includes ausgelesen
    $sSourceCode = FileRead($sFile)
    $aSourceCode = StringSplit($sSourceCode, @CRLF, 3)
    $aFunctions = StringSplit($sFunc, @CRLF, 3)
    for $i = 0 to UBound($aSourceCode) -1
    if StringLeft(StringLower($aSourceCode[$i]), 8) = "#include" then
    $aIncludes[$iCount] = $aSourceCode[$i]
    $iCount += 1
    EndIf
    Next
    ReDim $aIncludes[$iCount]
    ;~ _ArrayDisplay($aIncludes)

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

    ; Alle aufgerufenen Funktionen innerhalb der Hauptfunktion auslesen
    ; Wird benötigt um die genaue Abhängigkeit der Hauptfunktion zu ermitteln
    $iCount=0
    for $i = 1 to UBound($aFunctions) -1
    if StringInStr($aFunctions[$i], "(") then
    if StringInStr(StringLeft($aFunctions[$i], StringInStr($aFunctions[$i], "(")), ";") then ContinueLoop
    $aTemp = StringRegExp($aFunctions[$i], '(?i)(?<=)[0-9a-zA-Z_]+[ ]*(?=\()', 3) ; Stolen from OrganizeIncludes
    if IsArray($aTemp) = 0 then ContinueLoop
    $aIncludedFuncs[$iCount] = $aTemp[0]
    if $aIncludedFuncs[$iCount] = "" Then ContinueLoop
    $aIncludedFuncs[$iCount] = StringStripWS($aIncludedFuncs[$iCount], 8)
    $iCount += 1
    EndIf
    Next
    ;~ ReDim $aIncludedFuncs[$iCount]
    ;~ _ArrayDisplay($aIncludedFuncs)

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

    ; Alle aufgerufenen Funktionen innerhalb aller Unterfunktionen auslesen
    $i = 0
    Do
    $i += 1
    if $i >= UBound($aIncludedFuncs) Then ExitLoop
    if $aIncludedFuncs[$i] = "" then ContinueLoop
    if StringInStr($sSourceCode, "Func " & $aIncludedFuncs[$i]&"(") = 0 then ContinueLoop
    $sSource = StringSplit(_StringBetween($sSourceCode, "Func " & $aIncludedFuncs[$i]&"(", "EndFunc"&@CRLF)[0], @CRLF, 3) ; Interne Funktion mit @CRLF Splitten
    for $j = 0 to UBound($sSource) -1
    if StringInStr($sSource[$j], "(") then
    if StringInStr(StringLeft($sSource[$j], StringInStr($sSource[$j], "(")), ";") then ContinueLoop
    $aTemp = StringRegExp($sSource[$j], '(?i)(?<=)[0-9a-zA-Z_]+[ ]*(?=\()', 3) ; Stolen from OrganizeIncludes
    if IsArray($aTemp) = 0 then ContinueLoop
    $aIncludedFuncs[$iCount] = $aTemp[0]
    if $aIncludedFuncs[$iCount] = "" Then ContinueLoop
    $aIncludedFuncs[$iCount] = StringStripWS($aIncludedFuncs[$iCount], 8)
    $iCount += 1
    EndIf
    Next
    Until $aIncludedFuncs[$i] = ""
    ReDim $aIncludedFuncs[$iCount]
    $aIncludedFuncs = _ArrayUnique($aIncludedFuncs)
    _ArrayDelete($aIncludedFuncs, 0)
    ;~ _ArrayDisplay($aIncludedFuncs)

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

    ; Prüfen ob sich die gefundenen Funktionen in dem Main-Source befinden
    $iCount=0
    for $i = 0 to UBound($aIncludedFuncs) -1
    if StringInStr($sSourceCode, "Func " & $aIncludedFuncs[$i]&"(") = 0 then ContinueLoop
    $sSource = "Func " & $aIncludedFuncs[$i] & "(" & _StringBetween($sSourceCode, "Func " & $aIncludedFuncs[$i] & "(", "EndFunc"&@CRLF)[0] & "EndFunc"&@CRLF
    $aInternFuncs[$iCount] &= $sSource
    $iCount += 1
    Next
    ReDim $aInternFuncs[$iCount]
    ;~ _ArrayDisplay($aInternFuncs)

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

    ; Variablen sammeln
    $sGlobal = "= ,;"&'"'&"'[])&+*/^-" ; Operatoren und so...
    $iCount=0
    for $x = 0 to 2
    if $x = 0 then
    $aArray = $aFunctions
    Elseif $x = 1 then
    $aArray = $aIncludedFuncs
    Elseif $x = 2 then
    $aArray = $aInternFuncs
    EndIf
    for $i = 1 to UBound($aArray) -1
    for $x = 1 to StringLen($aArray[$i])
    $sChr = StringMid($aArray[$i], $x, 1)
    if StringMid($aArray[$i], $x-2, 3) = ", _" or StringMid($aArray[$i], $x-2, 3) = "& _" then ContinueLoop 2 ; Nächste Zeile
    if $sChr = ";" then ContinueLoop 2 ; ...
    if $sChr = "$" then ; Variablenstart
    $sTemp = ""
    for $y = $x to StringLen($aArray[$i])
    $sChr = StringMid($aArray[$i], $y, 1)
    if StringInStr($sGlobal, $sChr) then
    $x = $y-1
    ExitLoop
    EndIf
    $sTemp &= $sChr
    Next
    $sTemp = StringStripWS($sTemp, 2)
    if _ArraySearch($aVariables, $sTemp) = -1 then
    $aVariables[$iCount] = $sTemp ; Zufügen
    $iCount += 1
    EndIf
    EndIf
    Next
    Next
    Next
    ReDim $aVariables[$iCount]
    ;~ _ArrayDisplay($aVariables)

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

    ; Gefundene Variablen im Main-Source suchen und incl. Werte zuweisen
    ; Alle gefundenen Variablen im Main-Source suchen und bei Erfolg Werte übernehmen
    $iCount=0
    $iSkipFunc=0
    for $i = 0 to UBound($aSourceCode) -1
    if StringLeft(StringLower($aSourceCode[$i]), 4) = "func" then $iSkipFunc = 1 ; Innerhalb von Funktionen keine Variablen suchen
    if StringLeft(StringLower($aSourceCode[$i]), 7) = "endfunc" then $iSkipFunc = 0 ; ...
    if $iSkipFunc = 0 then
    $aSourceCode[$i] = StringReplace($aSourceCode[$i], Chr(9), "")
    for $x = 1 to StringLen($aSourceCode[$i])
    $sChr = StringMid($aSourceCode[$i], $x, 1)
    if StringMid($aSourceCode[$i], $x-2, 3) = ", _" or StringMid($aSourceCode[$i], $x-2, 3) = "& _" then ContinueLoop 2 ; Nächste Zeile
    if $sChr = ";" then ContinueLoop 2 ; ...
    if $sChr = "$" then ; Variablenstart
    $sTemp = ""
    for $y = $x to StringLen($aSourceCode[$i])
    $sChr = StringMid($aSourceCode[$i], $y, 1)
    ;~ if $sChr = "," or StringMid($aSourceCode[$i], $y, 1) & $sChr = " _" or $sChr = ";" Then ; evtl. Variablenende
    if $sChr = "," or StringMid($aSourceCode[$i], $y-2, 3) = ", _" or StringMid($aSourceCode[$i], $y-2, 3) = "& _" or $sChr = ";" Then ; evtl. Variablenende
    $x = $y-1
    ExitLoop
    EndIf
    $sTemp &= $sChr ; Gefundenes erweitern
    Next
    $sTemp = StringStripWS($sTemp, 8)
    for $y = UBound($aVariables)-1 to 0 Step -1 ; Variablen-Array prüfen
    if $aVariables[$y] = (StringInStr($sTemp, "=") ? StringSplit($sTemp, "=")[1] : $sTemp) then ; Wenn eine Zuweisung vorhanden ist "=" dann Splitten
    if _ArraySearch($aGlobalVariables, $sTemp) = -1 then
    $aGlobalVariables[$iCount] = $sTemp ; Variable Zufügen
    _ArrayDelete($aVariables, $y)
    $iCount += 1
    ExitLoop
    EndIf
    EndIf
    Next
    EndIf
    Next
    EndIf
    Next
    if $iCount = 0 Then $iCount = 1
    ReDim $aGlobalVariables[$iCount]
    ;~ _ArrayDisplay($aGlobalVariables)

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

    ; Alles dem Neuen-Source zufügen
    ; Erst Includes, globale Variabeln, Haupfunktion, Unter-Funktionen in einem SourceCode hinterlegen
    $sSource = ""
    for $i = 0 to UBound($aIncludes) -1
    if $aIncludes[$i] <> "" then $sSource &= $aIncludes[$i] & @CRLF
    Next
    $aSourceCode = "; Includes" & @CRLF & $sSource & @CRLF
    if $aGlobalVariables[0] <> "" then
    $sSource = "Global _" & @CRLF
    for $i = 0 to UBound($aGlobalVariables) -1
    if $aGlobalVariables[$i] <> "" then $sSource &= Chr(9) & $aGlobalVariables[$i] & ", _" & @CRLF
    Next
    $aSourceCode &= @CRLF & "; Globale Variablen" & @CRLF & StringTrimRight($sSource, 5) & @CRLF & @CRLF
    EndIf
    $sSource = ""
    for $i = 0 to UBound($aFunctions) -1
    $sSource &= $aFunctions[$i] & @CRLF
    Next
    $aSourceCode &= @CRLF & "; Hauptfunktion" & @CRLF & $sSource & @CRLF
    $sSource = ""
    if UBound($aInternFuncs) >0 then
    for $i = 0 to UBound($aInternFuncs) -1
    $sSource &= $aInternFuncs[$i] & @CRLF
    Next
    $aSourceCode &= @CRLF & "; Unterfunktionen" & @CRLF & $sSource
    EndIf

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

    ; Datei schreiben
    FileDelete(@ScriptDir&"\"&$sFuncName&".au3")
    FileWrite(@ScriptDir&"\"&$sFuncName&".au3", $aSourceCode)

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

    EndFunc

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

    ;
    ; Testumgebung...
    Global $sTest, _
    $iTestSingle, _
    $iTestDoubleA1, $iTestDoubleA2, _
    $iTestDoubleB1 = 1,$iTestDoubleB2=2, _
    $iTest = 1,$iTestSingle

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

    ;~ _ExcludeFunc("_ExcludeFunc") ; Abhängikeitsprüfung und Export von '_ExcludeFunc'
    ;~ _ExcludeFunc("_GetFunc") ; Abhängikeitsprüfung und Export von '_GetFunc'
    Func _GetFunc($sFuncName)
    Dim $Test ; Test
    $Test = $iTestSingle
    $Test = $iTestDoubleA1
    $Test = $iTestDoubleA2
    $Test = $iTestDoubleB1
    $Test = $iTestDoubleB2
    $Test = $iTest
    $Test = $iTestSingle
    Return "Func " & $sFuncName&"(" & _StringBetween(FileRead(@ScriptFullPath), "Func " & $sFuncName&"(", "EndFunc"&@CRLF)[0] & @CRLF&"EndFunc"
    EndFunc

    [/autoit]

    Viel Spaß beim Debuggen ;)
    Grüsse!

    [Edit]
    Update auf V0.12:
    Verbesserte Tiefenanlyse, wird jetzt auch bei Unterfunktionen angewendet
    Variablenerkennung optimiert, es werden jetzt mehr abhängige Variablen erkannt
    Weniger Au3Check-Error

    Danke für die bisherigen 20 Downloads!

  • Kontaktlinsen ade :(

    • Techmix
    • 2. Januar 2015 um 14:54

    Keine Sorge, du wirst auch mit Guck-Lupen unser Schnuckelchen bleiben :D

    Grüsse!

  • Jahreswechsel

    • Techmix
    • 1. Januar 2015 um 00:37

    Frohes neues :D

  • Hardware Baukasten Tinkerforge

    • Techmix
    • 23. Dezember 2014 um 19:55

    Hallo,
    Erstmal muss ich sagen das ich nicht am Rechner sitze und deswegen auch nichts nachschlagen kann.

    Aber ich arbeite auch öfters mit TCP Client-Server Scripten, und mir ist über TCP nie ein Paket verloren gegangen! Auch wenn was gesendet wird und ich erst später abfrage, erhalte ich immer die korrekten Daten! Ich habe deine UDF jetzt nicht durchgelesen und habe auch nicht diese Hardware - Kann deswegen nichts testen.
    Aber der TCP-Stack wird doch von Windows verwaltet und hat auch einen Cache-Speicherbereich! Sobald du mit einer TCP Funktion diesen ausließt wird er geleert. Du mußt nicht Syncron mit dieser Hardware arbeiten, wenn du es nicht willst ;)

    Hoffe ich konnte etwas helfen.
    Grüsse!

  • Excel & AutoIt

    • Techmix
    • 15. Dezember 2014 um 14:57

    Hy,
    Welche Office Version nutzt du? Bei mir laufen alle Beispiele mit Office2007.

    Vielleicht liegts daran...

    Grüsse!

  • Geschwindigkeitsoptimierung in AutoIt

    • Techmix
    • 13. Dezember 2014 um 11:00

    Hy,

    Ich habe mir den Thread mehrfach durchgelesen! Erstmal große Klasse das diese Infos zusammengetragen wurden.

    Ich habe mir das Programmieren vor ewigkeiten selber beigebracht, und meinen Skill ständig weiterentwickelt. Nur fällt mir in den letzten Jahren immer mehr auf, das ich mit den ganzen Bezeichnungen gar nichts anfangen kann... Da wirst du von jemanden gefragt ob du mit der Technik XXY arbeitest - und ich gucke dumm aus der Wäsche, weil ich keinen Schimmer habe was denn gemeint ist. Bis ich vor dem Rechner sitze, und total unbewusst 80% der hier vorgetragenen Techniken seit Jahren anwende - ohne das eigentlich zu Wissen...

    Muss mich umbedingt mehr mit der Theorie auseinander setzen...

    Grüsse!

    P.S:
    Andy hat es bereits angesprochen, Parallelisierung und auch Multi -Threading oder -Processing sind in der Optimierung der letzte große Schritt. Damit kann man, gerade Algoryhtmen, bis zum Faktor 3 bis 4 beschleunigen OHNE große Eingriffe im Algo selber durchführen zu müssen.

  • 3d Visualisierung Stl file

    • Techmix
    • 6. Dezember 2014 um 23:31

    Hy :D
    Sorry konnte nicht antworten bzw. das Beispiel hochladen...
    Aber es ist ein altes Beispiel was ich mal für jemand aus dem Forum angefertigt habe, also kein 100%ig formatierter Source - aber Lauffähig.

    In dem Beispiel konfigurierst du das Modell mit der 'GK.ini' darin befindet sich 'Model=' und 'MainTxt=' diese mußt du anpassen. Ob das jetzt so mit .stl läuft oder nicht, kann ich dir nicht sagen - habs nicht getestet... Auch würde ich die anderen Einstellungen erstmal nicht ändern, weil ich selber nicht nachgelesen habe was welche Einstellung eigentlich macht.

    Aber du kannst ja versuchen dein Modell in der Ini einzusetzen, evtl. mit oder ohne Texturangabe.

    Grüsse!

    http://www.file-upload.net/download-9959276/GK.rar.html

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™