Ich habe ein Idee was glaube jedenfalls ich zu Guten des ganzen Forums kommt : Der Script Sorter.
Er sollte durchwirbelte Skripte sortieren.
1.Includes
2. Funktionen
- Variablen
- Rest der Funktion
Ich habe auch schon angefangen :
Spoiler anzeigen
#include <GuiConstantsEx.au3>
#include <Array.au3>
#include <File.au3>
_Settings()
Func _Settings()
$Settings_GUI=GUICreate("ScriptSorter v1.0.0",300,150)
GUISetState()
$Group1 = GUICtrlCreateGroup("Einstellungen",2,2,290,100)
$Checkbox1 = GUICtrlCreateCheckbox("Komplettes Skript sortieren",10,20)
$Checkbox2 = GUICtrlCreateCheckbox("Backup erstellen",10,45)
$Start = GUICtrlCreateButton("Starten",75,125,150)
While 1
$msg=GUIGetMsg()
Select
Case $msg=$GUI_EVENT_CLOSE
Exit 1
Case $msg=$Start
Global $Check1 = GUICtrlRead($Checkbox1)
Global $Check2 = GUICtrlRead($Checkbox2)
GUIDelete($Settings_GUI)
Global $File = FileOpenDialog("Datei auswählen",@DesktopDir,"(*.au3)")
_Sort()
EndSelect
WEnd
EndFunc
Func _Sort()
If $Check2 <> 4 Then
FileCopy($File,@ScriptDir&"\_backup\"&$File)
EndIf
$Readed_Script = _ScriptRead($File)
Dim $Includes[1]
$Includes[0] = ""
Dim $Funcs[1]
$Funcs[0] = ""
For $i = 1 to Ubound($Readed_Script,1)-1
If StringInStr($Readed_Script[$i],"#include") Then
_ArrayAdd($Includes,$Readed_Script[$i])
EndIf
Next
For $i = 1 to Ubound($Readed_Script,1)-1
If StringInStr($Readed_Script[$i],"Func _") Then
$Turn = ""
$Start = 0
$Ende = 0
$Start = $i
For $z = $i to Ubound($Readed_Script,1)-1
If StringInStr($Readed_Script[$z],"EndFunc") Then
$Ende = $z
ExitLoop
EndIf
Next
For $l = $Start to $Ende
If $Turn = "" Then
$Turn = $Readed_Script[$l]
Else
$Turn = $Turn&@CRLF&$Readed_Script[$l]
EndIf
Next
$i = $Ende + 1
_ArrayAdd($Funcs,$Turn)
EndIf
Next
_ArrayDisplay($Readed_Script)
For $i = 1 to Ubound($Includes,1)-1
FileWriteLine(@ScriptDir&"\"&"skript.au3",$Includes[$i])
Next
For $i = 1 to Ubound($Funcs,1)-1
FileWrite(@ScriptDir&"\"&"skript.au3",$Funcs[$i]&@CRLF)
Next
Exit 1
EndFunc
Func _ScriptRead($f_File)
$Lines = _FileCountLines($f_File)
Dim $Return[1]
$Return[0] = ""
For $i = 1 to $Lines
$Line = FileReadLine($f_File,$i)
_ArrayAdd($Return,$Line)
Next
Return $Return
EndFunc
Ich hoffe es werden mir viele helfen möchten da es denke ich in der Interesse des ganzen Forums ist sortierte und nicht durchgewirbelte Skripte zu sehen.
mfg nof@ker