• Offizieller Beitrag

    Hallo zusammen,
    auch wenn noch nicht alle features umgesetzt sind, möchte ich schon mal die erste alpha :D Version posten und bitte darum diese zu testen.

    Das zip einfach z.B hier entpacken : c:\Programme\AutoIt3\SciTE\OrganizeIncludes\
    (der Ordner OrganizeIncludes ist manuell anzulegen)

    anschließend in der SciteUser.properties den Aufruf hinterlegen z.B. so:
    Die Datei findest du unter : C:\Dokumente und Einstellungen\USER
    oder in Scite --> [ Options --> Open User Option File ] aufrufen

    Spoiler anzeigen

    # 36 OrganizeIncludes
    command.36.*.au3="$(autoit3dir)\autoit3.exe" "$(SciteDefaultHome)\OrganizeIncludes\OI_1.0.0.0.au3" "$(FilePath)"
    command.name.36.*.au3=OrganizeIncludes
    command.save.before.36.*.au3=1
    command.is.filter.36.*.au3=1
    command.shortcut.36.*.au3=Ctrl+Shift+Alt+I

    Vielen Dank im Voraus!

    P.S.: Das Skript sucht die benötigen Include Dateien zusammen. Mehr darüber steht z.B. im alten Thread : Thread (alte) Version

    Hier gibt es die aktuellste Version : Download Thread

    Mega

    • Offizieller Beitrag

    Hallo

    Am besten finde ich den "Help" Button ;D
    Ne, sieht sehr gut aus, und wirklich sehr schnell.
    Ersten Fehler gefunden: Habe Versucht Galenda mal zu Organize Includen.
    Das einzige was ich in SciTe ausgegeben bekomme ist das hier (onhe Fehlermeldung oder eine GUI o.ä.):

    Code
    +> "Organize Includes" for AutoIt3 | Version 1.0.0.0 | © Th.Meger™ | 31.december.2009
    >Exit code: -1073741571    Time: 9.919


    Galenda ist mit ihren 263993 Bytes auch nicht die kleinste au3 Datei, sollte aber trotzdem nicht passieren, oder? ;)
    Bei ähnlich großen Dateien, der gleiche "Fehler". (z.B. der EZ-Skin Include).

    Wird in der zukünftigen Version auch wieder ein Automatischer Durchlauf unterstützt? Es nervt mich immer, noch extra auf ein Button klicken zu müssen ;)

    Gruß
    Spider

    Edit: Achja, Test PC:
    AutoIt Version 3.3.2.0
    Windows Seven mit allen Updates

    • Offizieller Beitrag

    Servus , ich hab einen Fehler gefunden.
    autoit.de/wcf/attachment/7156/

    Wenn die beiden Makierten Checkboxen aktiviert sind, kommt bei Druck auf Restart folgender Fehler:
    autoit.de/wcf/attachment/7157/


    Edit der Fehler kommt nur bei der Checkbox Includes Directory.

    Edit: Hab das Script das ich verwendet habe mal an den Post angefügt.
    Edit: Das Organize Include Verzeichnis ist zum Überprüfen der Inis angehängt.

  • Ich hab gleich nen feautre-request ;) Kannst du nicht die beta/stabel anhand von #AutoIt3Wrapper_Version unterscheiden?

    [autoit]

    If StringInStr($sSource, "#AutoIt3Wrapper_Version", 2) And StringRegExp($sSource, "(?i)(\A|\r|\n)\s*#AutoIt3Wrapper_Version=\h*beta") Then
    $fUseBetaInclude = True
    Else
    $fUseBetaInclude = False
    EndIf

    [/autoit]
  • Hallo,
    toller Geschwindigkeitszuwachs! :thumbup:

    Zitat

    Wird in der zukünftigen Version auch wieder ein Automatischer Durchlauf unterstützt? Es nervt mich immer, noch extra auf ein Button klicken zu müssen


    Habe das bei mir folgendermaßen gelöst: OI ist bei mir im "silent mode" auf die F2-Taste gelegt. Ich starte mit Scite zusammen ein Script, welches das AU3Checkerrors-Fenster abfängt und bei entsprechenden Fehlermeldungen (alles was mit fehlenden/falschen Deklarationen usw. zu tun hat) automatisch das Errorfenster schließt und danach ein F2 (für OI) an Scite sendet. Das hat sogar den Vorteil, daß das Error-Fenster sofort verschwindet, in der Console stehen die Fehler ja auch drin.
    Nun hat OI so sehr an Geschwindigkeit gewonnen, ich warte die alpha_0.0.0.2 garnicht erst ab^^

  • Ich nutze zum Schreiben von AutoIt-Quellcode den Crimson-Editor.

    Ist es auch möglich, "Organize Includes" ohne SciTE zu nutzen ?
    Commandline-Parameter habe ich keine gefunden und eine Oberfläche öffnet sich bei Start per Doppelklick nicht.

    Besten Dank
    micha_he

    Zur Nutzung dieses Forum's, ist ein Übersetzer für folgende Begriffe unerlässlich:

    "On-Bort, weier, verscheiden, schädliges, Butten steyling, näckstet, Parr, Porblem, scripe, Kompletenz, harken, manuel zu extramieren, geckukt, würglich, excell, acces oder Compilevorgeng"

    • Offizieller Beitrag

    Der in Post 4 beschriebene Fehler kommt warscheinlich hierher:

    [autoit]

    Func _getUDFPathes()
    Local $reg = RegRead('HKCU\Software\AutoIt v3\Autoit', 'Include'), $splitted = 0
    If $reg = '' Then
    SetError(1)
    Return 0
    EndIf
    If StringInStr($reg, ';') Then
    $splitted = StringSplit($reg, ';', 2)
    $splitted = _ArrayUnique($splitted)
    Return $splitted
    Else
    Local $re[1]
    $re[0] = $reg
    Return $re
    EndIf
    EndFunc ;==>_getUDFPathes

    [/autoit]

    Auf meinen Rechner gibt es den Registry Schlüssel nicht.

    Aber sonst ist das Programm spitze und wahnsinnig schnell. :thumbup:


    Edit der Registry Key wird ja nur gesetzt, wenn man in SciteConfig den User Include Dir Pfad auch angibt. Wenn der Pfad nicht gesetzt wird, wird auch kein RegKey geschrieben.
    Eine Auswahl der Checkbox sollte also nur möglich sein, wenn der RegKey auch gesetzt ist. ;)

    • Offizieller Beitrag

    Ich nutze zum Schreiben von AutoIt-Quellcode den Crimson-Editor.

    Ist es auch möglich, "Organize Includes" ohne SciTE zu nutzen ?
    Commandline-Parameter habe ich keine gefunden und eine Oberfläche öffnet sich bei Start per Doppelklick nicht.

    OI ist sehr auf SciTE zugeschnitten (Übernahme des Quellcodes und automatisches einfügen der Includes). Ich weiß jetzt nicht, ob Xeno vorhat, das Tool universell nutzbar zu machen, aber wenn Dir vielleicht mein kleines Script ausreicht:

    ClipPutIncludes
    [autoit]


    #NoTrayIcon
    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_Change2CUI=y
    #AutoIt3Wrapper_Res_Description=ClipPutIncludes
    #AutoIt3Wrapper_Res_Fileversion=1.0.0.0
    #AutoIt3Wrapper_Res_LegalCopyright=by Oscar (http://www.autoit.de)
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

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

    #Region ;**** Includes created by ClipPutIncludes ****
    #include <Array.au3>
    #include <File.au3>
    #EndRegion ;**** Includes created by ClipPutIncludes ****

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

    Global $sTitle = 'ClipPutIncludes v1.0'

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

    Global $sRegKey = 'HKEY_LOCAL_MACHINE64\SOFTWARE\', $sStablePath, $sStableError, $sBetaPath, $sBetaError
    If @OSArch <> 'X86' Then $sRegKey &= 'Wow6432Node\'
    $sStablePath = RegRead($sRegKey & 'AutoIt v3\AutoIt', 'InstallDir')
    $sStableError = @error
    $sBetaPath = RegRead($sRegKey & 'AutoIt v3\AutoIt', 'betaInstallDir')
    $sBetaError = @error

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

    Global $oDictStable = ObjCreate('Scripting.Dictionary')
    Global $oDictBeta = ObjCreate('Scripting.Dictionary')
    If Not IsObj($oDictStable) Or Not IsObj($oDictBeta) Then Exit ConsoleWrite("ERROR! Can't create Scripting.Dictionary!" & @CRLF)

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

    Global $iTimeDiff, $iTimer1, $iTimer2, $aRequired, $sOut
    Global $sSourcePath, $sUseAutoItVersion = 'stable'

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

    If $CmdLine[0] = 0 Then
    $sSourcePath = FileOpenDialog($sTitle, @WorkingDir & '\', 'AutoIt-Script (*.au3)', 3)
    If @error Then Exit ConsoleWrite('ERROR! Scriptfile not found!' & @CRLF)
    Else
    For $i = 1 To $CmdLine[0]
    If $CmdLine[$i] = '-stable' Then $sUseAutoItVersion = 'stable'
    If $CmdLine[$i] = '-beta' Then $sUseAutoItVersion = 'beta'
    If $CmdLine[$i] = '-s' And $CmdLine[0] > $i Then $sSourcePath = $CmdLine[$i + 1]
    Next
    If $sSourcePath = '' Then
    $sSourcePath = FileOpenDialog($sTitle, @WorkingDir & '\', 'AutoIt-Script (*.au3)', 3)
    If @error Then Exit ConsoleWrite('ERROR! Scriptfile not found!' & @CRLF)
    EndIf
    If Not FileExists($sSourcePath) Then Exit ConsoleWrite('ERROR! Scriptfile not exists!' & @CRLF)
    EndIf

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

    $iTimer1 = TimerInit()
    ConsoleWrite('# Start: Read Includes' & @CRLF)
    Switch $sUseAutoItVersion
    Case 'stable'
    If $sStableError Then Exit ConsoleWrite('ERROR! AutoIt (stable) not installed!' & @CRLF)
    _GetIncludeFuncsAndVars($sStablePath & '\Include', $oDictStable)
    Case 'beta'
    If $sBetaError Then Exit ConsoleWrite('ERROR! AutoIt (beta) not installed!' & @CRLF)
    _GetIncludeFuncsAndVars($sBetaPath & '\Include', $oDictBeta)
    EndSwitch
    $iTimeDiff = Int(TimerDiff($iTimer1))
    ConsoleWrite('# Read Includes complete: ' & $iTimeDiff & ' ms' & @CRLF)

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

    $iTimer2 = TimerInit()
    ConsoleWrite('# Start: Analyse Script' & @CRLF)
    Switch $sUseAutoItVersion
    Case 'stable'
    $aRequired = _GetRequiredIncludes($sSourcePath, $oDictStable)
    If @error = 2 Then Exit ConsoleWrite("ERROR! Can't open Scriptfile!" & @CRLF)
    Case 'beta'
    $aRequired = _GetRequiredIncludes($sSourcePath, $oDictBeta)
    If @error = 2 Then Exit ConsoleWrite("ERROR! Can't open Scriptfile!" & @CRLF)
    EndSwitch
    $aRequired = _ArrayUnique($aRequired)
    ConsoleWrite('# Analyse Script complete: ' & Int(TimerDiff($iTimer2)) & ' ms' & @CRLF)
    ConsoleWrite('# Totaltime: ' & Int(TimerDiff($iTimer1)) & ' ms' & @CRLF)

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

    ConsoleWrite('# Copy includes to Clipboard!' & @CRLF)
    $sOut = '#Region ;**** Includes created by ClipPutIncludes ****' & @CRLF
    For $i = 1 To $aRequired[0]
    $sOut &= $aRequired[$i] & @CRLF
    Next
    $sOut &= '#EndRegion ;**** Includes created by ClipPutIncludes ****' & @CRLF
    ClipPut($sOut)
    ConsoleWrite('# Ready.' & @CRLF)
    Exit

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

    Func _GetIncludeFuncsAndVars($sPath, ByRef $oDict)
    If Not IsObj($oDict) Then Return SetError(1, 0, 0)
    Local $aIncludeFiles, $aAll[1][2], $sFile, $aTmp, $iCount
    $aIncludeFiles = _FileListToArray($sPath, '*.au3', 1)
    If @error Then Return SetError(2, 0, 0)
    For $i = 1 To $aIncludeFiles[0]
    $sFile = FileRead($sPath & '\' & $aIncludeFiles[$i])
    $aTmp = StringRegExp($sFile, '(?s)(?:Global|Global Const) (\$.+?)(?:\;|\,|\h)', 3)
    If IsArray($aTmp) Then
    For $j = 0 To UBound($aTmp) - 1
    If Not $oDict.Exists($aTmp[$j]) Then $oDict.add($aTmp[$j], $aIncludeFiles[$i])
    Next
    EndIf
    $aTmp = StringRegExp($sFile, '(?s)\vFunc (.+?)\h*\(', 3)
    If IsArray($aTmp) Then
    For $j = 0 To UBound($aTmp) - 1
    If Not $oDict.Exists($aTmp[$j]) Then $oDict.add($aTmp[$j], $aIncludeFiles[$i])
    Next
    EndIf
    Next
    EndFunc ;==>_GetIncludeFuncsAndVars

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

    Func _GetRequiredIncludes($sScriptPath, ByRef $oDict)
    If Not IsObj($oDict) Then Return SetError(1, 0, 0)
    Local $sFile, $sOut
    $sFile = FileRead($sScriptPath)
    If @error Then Return SetError(2, 0, 0)
    For $strKey In $oDict.Keys
    If StringRegExp($sFile, StringReplace($strKey, '$', '\$')) Then
    ConsoleWrite(StringFormat(' %-40s -> %-40s', $strKey, $oDict.Item($strKey)) & @CR)
    $sOut &= '#include <' & $oDict.Item($strKey) & '>' & '|'
    EndIf
    Next
    If $sOut = '' Then Return
    Return StringSplit(StringTrimRight($sOut, 1), '|', 2)
    EndFunc ;==>_GetRequiredIncludes

    [/autoit]


    Das ist nicht mit OI zu vergleichen, da es viel weniger Funktionen bietet, aber ein schnelles einfügen (per Clipboard) der benötigten Includes funktioniert.
    Das Tool lässt sich per Commandozeile aufrufen. Zum Beispiel: ClipPutIncludes -beta -s "Scriptfile.au3"

  • Ersten Fehler gefunden: Habe Versucht Galenda mal zu Organize Includen.
    Das einzige was ich in SciTe ausgegeben bekomme ist das hier (onhe Fehlermeldung oder eine GUI o.ä.):

    Code
    +> "Organize Includes" for AutoIt3 | Version 1.0.0.0 | © Th.Meger™ | 31.december.2009
    >Exit code: -1073741571    Time: 9.919


    Galenda ist mit ihren 263993 Bytes auch nicht die kleinste au3 Datei, sollte aber trotzdem nicht passieren, oder? ;)
    Bei ähnlich großen Dateien, der gleiche "Fehler". (z.B. der EZ-Skin Include).


    Das kommt vom StringRegExpReplace beim entfernen der Kommentare, da wird der Match zu groß. Die Funktion funktioniert auch mit verschachtelten Kommentaren nicht korrekt. Ich hätte da eine Idee, wie man es machen kann, aber funktioniert noch nicht ganz. Jedenfalls läuft die Funktion bisher auch bei Galenda ohne Crash.

    • Offizieller Beitrag

    Hey Junx, klasse feedback.
    Ich werde die einzelnen Punkte mal durchgehen.

    1) Fehler (>Exit code: -1073741819 ) kommt wie beschrieben aus der Funktion _stripSourceCode. War mir auch bekannt, daher auch dieser Thread Thread ENG
    Ich werde die Kommentare in mehreren Steps löschen müssen. (oder ProgAndy hat seine Lösung bis dahin fertig :D )

    2) Silent Mode : Der Mode kommt natürlich wieder rein. (Also Aufruf ohne GUI mit den Settings aus der ini)

    3) Fehler mit UDF Checkbox werde ich ausbauen und die Anmerkung die Checkbox zu disablen wenn kein RegKey vorhanden finde ich auch gut.

    4) Nutzung per Kommandozeile und mit anderen Editoren. Genau dafür werde ich die Kommandozeile versuchen einzubauen. Damit sollte dann beides möglich sein. Also Nutzung ohne Scite und Nutzung per Parameterübergabe

    5) Die Ermittlung der Beta oder Releaseversion muss ich mir mal anschauen. Eigentlich ist das ja mit der ini oder per Parameter dann ja schon drin.

    Mega

  • Ich weiß jetzt nicht, ob Xeno vorhat, das Tool universell nutzbar zu machen, aber wenn Dir vielleicht mein kleines Script ausreicht:

    Das ist nicht mit OI zu vergleichen, da es viel weniger Funktionen bietet, aber ein schnelles einfügen (per Clipboard) der benötigten Includes funktioniert.
    Das Tool lässt sich per Commandozeile aufrufen. Zum Beispiel: ClipPutIncludes -beta -s "Scriptfile.au3"

    Nicht schlecht. Ist zwar etwas "sprachlos" Dein Script (die ConsoleWrite-Ausgaben sehe ich ja nicht) aber es tun seinen Zweck.

    Nur hatte ich immer Programmabbrüche mit Deiner Version, wenn es im Script nichts zu includen gab. Das Array war halt nicht vorhanden.
    Aber den Fehler mal abgefangen. Hier die aktualisierte (Zeile 71ff) Version:

    ClipPutIncludes
    [autoit]

    #NoTrayIcon
    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_Change2CUI=y
    #AutoIt3Wrapper_Res_Description=ClipPutIncludes
    #AutoIt3Wrapper_Res_Fileversion=1.0.0.0
    #AutoIt3Wrapper_Res_LegalCopyright=by Oscar (http://www.autoit.de)
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

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

    #Region ;**** Includes created by ClipPutIncludes ****
    #include <Array.au3>
    #include <File.au3>
    #EndRegion ;**** Includes created by ClipPutIncludes ****

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

    Global $sTitle = 'ClipPutIncludes v1.0'

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

    Global $sRegKey = 'HKEY_LOCAL_MACHINE64\SOFTWARE\', $sStablePath, $sStableError, $sBetaPath, $sBetaError
    If @OSArch <> 'X86' Then $sRegKey &= 'Wow6432Node\'
    $sStablePath = RegRead($sRegKey & 'AutoIt v3\AutoIt', 'InstallDir')
    $sStableError = @error
    $sBetaPath = RegRead($sRegKey & 'AutoIt v3\AutoIt', 'betaInstallDir')
    $sBetaError = @error

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

    Global $oDictStable = ObjCreate('Scripting.Dictionary')
    Global $oDictBeta = ObjCreate('Scripting.Dictionary')
    If Not IsObj($oDictStable) Or Not IsObj($oDictBeta) Then Exit ConsoleWrite("ERROR! Can't create Scripting.Dictionary!" & @CRLF)

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

    Global $iTimeDiff, $iTimer1, $iTimer2, $aRequired, $sOut
    Global $sSourcePath, $sUseAutoItVersion = 'stable'

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

    If $CmdLine[0] = 0 Then
    $sSourcePath = FileOpenDialog($sTitle, @WorkingDir & '\', 'AutoIt-Script (*.au3)', 3)
    If @error Then Exit ConsoleWrite('ERROR! Scriptfile not found!' & @CRLF)
    Else
    For $i = 1 To $CmdLine[0]
    If $CmdLine[$i] = '-stable' Then $sUseAutoItVersion = 'stable'
    If $CmdLine[$i] = '-beta' Then $sUseAutoItVersion = 'beta'
    If $CmdLine[$i] = '-s' And $CmdLine[0] > $i Then $sSourcePath = $CmdLine[$i + 1]
    Next
    If $sSourcePath = '' Then
    $sSourcePath = FileOpenDialog($sTitle, @WorkingDir & '\', 'AutoIt-Script (*.au3)', 3)
    If @error Then Exit ConsoleWrite('ERROR! Scriptfile not found!' & @CRLF)
    EndIf
    If Not FileExists($sSourcePath) Then Exit ConsoleWrite('ERROR! Scriptfile not exists!' & @CRLF)
    EndIf

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

    $iTimer1 = TimerInit()
    ConsoleWrite('# Start: Read Includes' & @CRLF)
    Switch $sUseAutoItVersion
    Case 'stable'
    If $sStableError Then Exit ConsoleWrite('ERROR! AutoIt (stable) not installed!' & @CRLF)
    _GetIncludeFuncsAndVars($sStablePath & '\Include', $oDictStable)
    Case 'beta'
    If $sBetaError Then Exit ConsoleWrite('ERROR! AutoIt (beta) not installed!' & @CRLF)
    _GetIncludeFuncsAndVars($sBetaPath & '\Include', $oDictBeta)
    EndSwitch
    $iTimeDiff = Int(TimerDiff($iTimer1))
    ConsoleWrite('# Read Includes complete: ' & $iTimeDiff & ' ms' & @CRLF)

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

    $iTimer2 = TimerInit()
    ConsoleWrite('# Start: Analyse Script' & @CRLF)
    Switch $sUseAutoItVersion
    Case 'stable'
    $aRequired = _GetRequiredIncludes($sSourcePath, $oDictStable)
    If @error = 2 Then Exit ConsoleWrite("ERROR! Can't open Scriptfile!" & @CRLF)
    Case 'beta'
    $aRequired = _GetRequiredIncludes($sSourcePath, $oDictBeta)
    If @error = 2 Then Exit ConsoleWrite("ERROR! Can't open Scriptfile!" & @CRLF)
    EndSwitch
    ConsoleWrite('# Analyse Script complete: ' & Int(TimerDiff($iTimer2)) & ' ms' & @CRLF)
    ConsoleWrite('# Totaltime: ' & Int(TimerDiff($iTimer1)) & ' ms' & @CRLF)
    If IsArray($aRequired) Then
    $aRequired = _ArrayUnique($aRequired)
    ConsoleWrite('# Copy includes to Clipboard!' & @CRLF)
    $sOut = '#Region ;**** Includes created by ClipPutIncludes ****' & @CRLF
    For $i = 1 To $aRequired[0]
    $sOut &= $aRequired[$i] & @CRLF
    Next
    $sOut &= '#EndRegion ;**** Includes created by ClipPutIncludes ****' & @CRLF
    ClipPut($sOut)
    Else
    ConsoleWrite('# No required includes found !' & @CRLF)
    EndIf
    ConsoleWrite('# Ready.' & @CRLF)
    Exit

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

    Func _GetIncludeFuncsAndVars($sPath, ByRef $oDict)
    If Not IsObj($oDict) Then Return SetError(1, 0, 0)
    Local $aIncludeFiles, $aAll[1][2], $sFile, $aTmp, $iCount
    $aIncludeFiles = _FileListToArray($sPath, '*.au3', 1)
    If @error Then Return SetError(2, 0, 0)
    For $i = 1 To $aIncludeFiles[0]
    $sFile = FileRead($sPath & '\' & $aIncludeFiles[$i])
    $aTmp = StringRegExp($sFile, '(?s)(?:Global|Global Const) (\$.+?)(?:\;|\,|\h)', 3)
    If IsArray($aTmp) Then
    For $j = 0 To UBound($aTmp) - 1
    If Not $oDict.Exists($aTmp[$j]) Then $oDict.add($aTmp[$j], $aIncludeFiles[$i])
    Next
    EndIf
    $aTmp = StringRegExp($sFile, '(?s)\vFunc (.+?)\h*\(', 3)
    If IsArray($aTmp) Then
    For $j = 0 To UBound($aTmp) - 1
    If Not $oDict.Exists($aTmp[$j]) Then $oDict.add($aTmp[$j], $aIncludeFiles[$i])
    Next
    EndIf
    Next
    EndFunc ;==>_GetIncludeFuncsAndVars

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

    Func _GetRequiredIncludes($sScriptPath, ByRef $oDict)
    If Not IsObj($oDict) Then Return SetError(1, 0, 0)
    Local $sFile, $sOut
    $sFile = FileRead($sScriptPath)
    If @error Then Return SetError(2, 0, 0)
    For $strKey In $oDict.Keys
    If StringRegExp($sFile, StringReplace($strKey, '$', '\$')) Then
    ConsoleWrite(StringFormat(' %-40s -> %-40s', $strKey, $oDict.Item($strKey)) & @CR)
    $sOut &= '#include <' & $oDict.Item($strKey) & '>' & '|'
    EndIf
    Next
    If $sOut = '' Then Return
    Return StringSplit(StringTrimRight($sOut, 1), '|', 2)
    EndFunc ;==>_GetRequiredIncludes

    [/autoit]

    Zur Nutzung dieses Forum's, ist ein Übersetzer für folgende Begriffe unerlässlich:

    "On-Bort, weier, verscheiden, schädliges, Butten steyling, näckstet, Parr, Porblem, scripe, Kompletenz, harken, manuel zu extramieren, geckukt, würglich, excell, acces oder Compilevorgeng"

    • Offizieller Beitrag

    Hallo,
    ich war mal so frei, da ich gerade etwas mit eclipse und mingw experimentiere, deine Icons in eine DLL zu packen.

    Die Icons sind in folgender Reihenfolge gespeichert:

    • Release.ico
    • Beta.ico
    • icon.ico
    • Check.ico
    • Configurator.ico
    • Refresh.ico
    • Find.ico
    • Help.ico
    • Edit.ico
    • Exit.ico

  • 1) Fehler (>Exit code: -1073741819 ) kommt wie beschrieben aus der Funktion _stripSourceCode. War mir auch bekannt, daher auch dieser Thread Thread ENG
    Ich werde die Kommentare in mehreren Steps löschen müssen. (oder ProgAndy hat seine Lösung bis dahin fertig :D )

    So, Ich meine, das sollte die meisten Kommentare sauber entfernen, bisher hatte ich jedenfalls keine Fehler ;)

    Spoiler anzeigen
    [autoit]

    Func _stripSourceCode(ByRef $source)
    Local $noComment_source = $source
    _stripComments($noComment_source)
    ;~ $noComment_source = StringRegExpReplace($source, '(?i)((\x22|\x27).*(\x22|\x27))|(;.*)|(#cs|#comments-start)(.*\r\n)(.*\r\n)*(#ce|#comments-end)(.*\r\n)', '\1') ; Kommentare entfernen
    ;~ $noComment_source = StringRegExpReplace($noComment_source, '([^\r])\n', '\1' & @CRLF) ; weil einige CRLF durch das Pattern zu LF wurden, das Zeilenende wieder korrigieren
    $noComment_source = StringRegExpReplace($noComment_source, '([''"]).*?\1', '') ; Strings löschen
    $noComment_source = StringStripWS($noComment_source, 7) ; dopeelte Leerzeichen/Umbrüche entfernen
    Return $noComment_source
    EndFunc ;==>_stripSourceCode

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

    Func _stripComments(ByRef $string)
    ;Author: Prog@ndy
    #Region verschachtelte Block-Kommentare entfernen
    $string = StringReplace(StringReplace($string, "#comments-start", "#cs", 0, 2), "#comments-end", "#ce", 0, 2)
    Local $match, $depth, $offset, $start, $CommentsAfterce
    While 1
    $depth = 0
    $match = StringRegExp($string, "(?i)(?m)^\h*#cs\b", 1)
    $start = @extended
    If @error Then ExitLoop
    Do
    $match = StringRegExp($string, "(?i)(?m)^\h*(#cs|#ce)\b", 1, $offset)
    $offset = @extended
    If @error Then Return False
    Switch $match[0]
    Case "#ce"
    $depth -= 1
    Case Else
    $depth += 1
    EndSwitch
    Until $depth < 1
    $string = StringLeft($string, $start-4) & StringRegExpReplace(StringMid($string, $offset), ".*", '', 1)
    WEnd
    #EndRegion verschachtelte Block-Kommentare entfernen
    $string = StringRegExpReplace($string, '(?m)^((?:[^''"]*|([''"]).*?\2)*);.*$', '\1') ; Einzeiler entfernen
    Return True
    EndFunc

    [/autoit]
    • Offizieller Beitrag

    Hallo,

    die Buttons sind doch oben, dass einzige was man nicht sieht ist die Statusleiste!

  • bei mir sind die Buttons "organize includes", "open ini", "renew ini" und "exit" unten.

    Und sie sind zur Hälfte von der Statusleiste verdeckt; Wenn ich den Style $WS_SIZEBOX einfüge (damit ich OI verwenden kann) dann sind die Buttons komplett von der Statusleiste verdeckt, kommen jedoch zum Vorschein, wenn man die Fenstergröße leicht verändert...

    Ich hab Win 7 auf dem Netbook

    • Offizieller Beitrag

    Hallo,

    dann benutzt du die Version 4.3 und nicht die um die es in diesem Thema geht.