#region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Outfile=host2squid.exe
#AutoIt3Wrapper_UseUpx=n
#AutoIt3Wrapper_Add_Constants=n
#AutoIt3Wrapper_Run_Tidy=y
#endregion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <Array.au3>
#include <File.au3>
#include <String.au3>
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>
#include <WindowsConstants.au3>
#include <Misc.au3>
#Alternate

AutoItSetOption("GUIOnEventMode", 1)
;~ Global $avArray[1]
;~ Global $stringleft = ' ##['
;~ Global $stringleft2 = '## ['
;~ Global $stringright = ']' & @LF
$stringclean = 0

#region ### START Koda GUI section ### Form=
$Form1 = GUICreate("host 2 squid", 464, 152, 192, 114)
GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked")
$Progress1 = GUICtrlCreateProgress(24, 24, 425, 20)
$Open = GUICtrlCreateButton("Open", 40, 88, 60, 49)
GUICtrlSetOnEvent($Open, "Open")
$Download = GUICtrlCreateButton("Download", 100, 88, 60, 49)
GUICtrlSetOnEvent($Download, "Download")
$Save = GUICtrlCreateButton("Save", 297, 88, 120, 49)
GUICtrlSetState($Save, $GUI_DISABLE)
GUICtrlSetOnEvent($Save, "Save")
$Label1 = GUICtrlCreateLabel("", 170, 88, 120, 17)
$Label2 = GUICtrlCreateLabel("", 170, 108, 120, 17)
GUISetState(@SW_SHOW)
#endregion ### END Koda GUI section ###


While 1
	Sleep(1000) ; Idle around
WEnd

Func CLOSEClicked()
	Exit
EndFunc   ;==>CLOSEClicked

Func Download()
	Local $hDownload = InetGet("http://www.mvps.org/winhelp2002/hosts.txt", @ScriptDir & "\hosts.txt", 1, 1)
	GUICtrlSetData($Label2, "Die Liste wird geladen")
	Do
		Local $aData = InetGetInfo($hDownload) ; Get all information.
		GUICtrlSetData($Progress1, ($aData[0] / $aData[1]) * 100)
	Until InetGetInfo($hDownload, 2) ; Check if the download is complete.
	Local $aData = InetGetInfo($hDownload) ; Get all information.
	InetClose($hDownload) ; Close the handle to release resources.
	GUICtrlSetData($Label2, "Fertig Heruntergeladen")
	#region --- CodeWizard generated code Start ---
	;MsgBox features: Title=No, Text=Yes, Buttons=Yes and No, Icon=None
	If Not IsDeclared("iMsgBoxAnswer") Then Local $iMsgBoxAnswer
	$iMsgBoxAnswer = MsgBox(4, "Verarbeiten des Downloads?", "Bytes read: " & $aData[0] & @CRLF & _
			"Size: " & $aData[1] & @CRLF & _
			"Complete?: " & $aData[2] & @CRLF & _
			"Successful?: " & $aData[3] & @CRLF)
	Select
		Case $iMsgBoxAnswer = 6 ;Yes
			Global $file = @ScriptDir & "\hosts.txt"
			Verarbeitung()
		Case $iMsgBoxAnswer = 7 ;No
	EndSelect
	#endregion --- CodeWizard generated code Start ---

EndFunc   ;==>Download

Func Open()
	Global $file = FileOpenDialog("", @HomeDrive, "host dateien(*.acl;*.txt)", 1)
	If $file = -1 Then
		MsgBox(0, "Error", "Unable to open file.")
	Else
		Verarbeitung()
	EndIf

EndFunc   ;==>Open

Func Save()
	$var = FileSaveDialog("", @HomeDrive, "acl datei(*.acl)", 16) & ".acl"
	If @error Then
		MsgBox(4096, "", "Save cancelled.")
	Else
		If FileExists($var) Then
			If Not IsDeclared("iMsgBoxAnswer") Then Local $iMsgBoxAnswer
			$iMsgBoxAnswer = MsgBox(4, "File Exists", "Overwrite?")
			Select
				Case $iMsgBoxAnswer = 6 ;Yes
					_FileCreate($var)
					FileOpen($var, 1)
					$stringtofile = ""
					GUICtrlSetData($Label2, "Die Liste wird gespeichert")
					For $y = 0 To UBound($avArray) - 1
						$stringtofile = $avArray[$y] & @CRLF
						FileWrite($var, $stringtofile)
					Next
					FileClose($var)
					GUICtrlSetData($Label2, "")
				Case $iMsgBoxAnswer = 7 ;No
					MsgBox(4096, "", "Save cancelled.")
			EndSelect
		EndIf
	EndIf
EndFunc   ;==>Save

Func Verarbeitung()
	Global $avArray[1]
	$stringleft = ' ##['
	$stringleft2 = '#['
	$stringleft3 = '# ['
	$stringright = ']' & @LF


	GUICtrlSetData($Progress1, 0)
	GUICtrlSetState($Open, $GUI_DISABLE)
	GUICtrlSetState($Download, $GUI_DISABLE)
	_FileReadToArray($file, $avArray)
	$zeilen = UBound($avArray)
	GUICtrlSetData($Label2, "ESC zum abbrechen")
	For $i = 1 To $zeilen - 1
		If _IsPressed("1B") Then ExitLoop
		$avArray[$i] = StringReplace($avArray[$i], "127.0.0.1  ", "")

		GUICtrlSetData($Progress1, ($i / $zeilen) * 100)
		GUICtrlSetData($Label1, $i & " von " & $zeilen)

		$stringclean = 0
		$string = _StringBetween($avArray[$i], $stringleft, ""); $stringright)
		If Not @error Then
			$avArray[$i] = StringReplace($avArray[$i], $stringleft & $string[0], "")
		EndIf
		$string2 = _StringBetween($avArray[$i], $stringleft2, ""); $stringright)
		If Not @error Then
			$avArray[$i] = StringReplace($avArray[$i], $stringleft2 & $string2[0], "")
		EndIf
		$string3 = _StringBetween($avArray[$i], $stringleft3, ""); $stringright)
		If Not @error Then
			_ArrayDelete($avArray, $i)
			$i = $i - 1
		EndIf
	Next


















;~ 	$zeilen = _FileCountLines($file)
;~ 	GUICtrlSetData($Label2, "ESC zum abbrechen")
;~ 	For $i = 1 To $zeilen
;~ 		GUICtrlSetData($Progress1, ($i / $zeilen) * 100)
;~ 		$zeile = FileReadLine($file, $i)
;~ 		$zeile = StringReplace($zeile, "127.0.0.1  ", "")
;~ 		$stringclean = 0
;~ 		$string = _StringBetween($zeile, $stringleft, ""); $stringright)
;~ 		If Not @error Then
;~ 			$stringclean = StringReplace($zeile, $stringleft & $string[0], "")
;~ 		EndIf
;~ 		$string2 = _StringBetween($zeile, $stringleft2, ""); $stringright)
;~ 		If Not @error Then
;~ 			$stringclean = StringReplace($zeile, $stringleft2 & $string2[0], "")
;~ 		EndIf
;~ 		If StringIsAlNum($stringclean) = 0 Then
;~ 			If $stringclean <> "" Then _ArrayAdd($avArray, $stringclean)
;~ 		Else
;~ 			If $zeile <> "" Then _ArrayAdd($avArray, $zeile)
;~ 		EndIf
;~ 		GUICtrlSetData($Label1, $i & " von " & $zeilen)
;~ 		If _IsPressed("1B") Then ExitLoop
;~ 	Next
;~ 	GUICtrlSetData($Label2, "Die Liste wird bereinigt...")
;~ 	_ArrayUnique($avArray)
	MsgBox(0, "", "27 zeilen löschen")
	For $i = 1 To 27
		_ArrayDelete($avArray, 0)
	Next
;~ 	GUICtrlSetData($Label2, "")
	_ArrayDisplay($avArray)
;~ 	FileClose($file)
;~ 	GUICtrlSetState($Open, $GUI_ENABLE)
;~ 	GUICtrlSetState($Download, $GUI_ENABLE)
;~ 	GUICtrlSetState($Save, $GUI_ENABLE)
EndFunc   ;==>Verarbeitung



