A
at
Гость
День добрый, Всем! Прошу подсказку. Как правильно применить Checkbox в этом скрипте, для разделения поиска файлов по маске.
Не нашел на форуме ничего похожего. Подскажите, где можно прочесть о чекбоксах или найти примеры.
Не нашел на форуме ничего похожего. Подскажите, где можно прочесть о чекбоксах или найти примеры.
Код:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <TabConstants.au3>
#include <WindowsConstants.au3>
$Form = GUICreate('', 180, 257, 300, 165)
$PageControl1 = GUICtrlCreateTab(0, 8, 180, 248)
$TabSheet_General = GUICtrlCreateTabItem(' Выбор ')
$Button_Server_1 = GUICtrlCreateButton('Сервер 1', 8, 43, 75, 25)
GUICtrlSetFont(-1, 8, 400, 0, 'Arial')
$Button_Server_2 = GUICtrlCreateButton('Сервер 2', 8, 75, 75, 25)
GUICtrlSetFont(-1, 8, 400, 0, 'Arial')
$Label1 = GUICtrlCreateLabel('10.10.1.10', 96, 50, 61, 18)
GUICtrlSetFont(-1, 8, 400, 0, 'Arial')
$Label2 = GUICtrlCreateLabel('10.10.1.20', 96, 82, 55, 18)
GUICtrlSetFont(-1, 8, 400, 0, 'Arial')
$Checkbox1 = GUICtrlCreateCheckbox('искать server.txt', 16, 200, 153, 17)
GUICtrlSetFont(-1, 8, 400, 0, 'Arial')
$Checkbox2 = GUICtrlCreateCheckbox('искать user.config', 16, 224, 145, 17)
GUICtrlSetFont(-1, 8, 400, 0, 'Arial')
GUICtrlCreateTabItem('')
GUISetState(@SW_SHOW)
Global $Text_Server_1 = '10.10.1.10'
Global $Text_Server_2 = '10.10.1.20'
Global $Replace_1 = '10.10.1.20'
Global $Replace_2 = '10.10.1.10'
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button_Server_1
$sFirstSearchFile = 'server.txt'
$sSecondSearchFile = 'user.config'
$sWhereSearch = @HomeDrive
$aSearch = _FileSearch($sWhereSearch, $sFirstSearchFile & ';' & $sSecondSearchFile, 1)
If @error Then
MsgBox(16, 'Error', '_FileSearch')
Exit
EndIf
If Not $aSearch[0] Then
MsgBox(16, 'Error', 'Not files')
Exit
EndIf
For $i = 1 To $aSearch[0]
$Read = FileRead($aSearch[$i]) ;Считываем
$Open = FileOpen($aSearch[$i], 2) ;Открываем
$Replace = StringRegExpReplace($Read, $Replace_1, $Text_Server_1) ;Изменяем
FileWrite($Open, $Replace) ;Переписываем
FileClose($Open) ;Закрываем
Next
EndSwitch
WEnd
Func _FileSearch($s_Path_Search, $s_File_Mask = '*', $i_Flag = 0, $i_SubDir = 1)
Local $s_Out, $a_Out, $s_Read, $h_Dir, $s_Attrib, $s_Subdir, $a_Masks
If StringRight($s_Path_Search, 1) == '\' Then
$s_Path_Search = StringTrimRight($s_Path_Search, 1)
EndIf
If $i_SubDir Then
$s_Subdir = ' /S /B'
Else
$s_Subdir = ' /B'
EndIf
Switch $i_Flag
Case 1
$s_Attrib = ' /A-D'
Case 2
$s_Attrib = ' /AD'
Case Else
$s_Attrib = ' /A'
EndSwitch
$s_Out = StringToBinary('0' & @CRLF, 2)
$a_Masks = StringSplit($s_File_Mask, ';')
For $i = 1 To $a_Masks[0]
$h_Dir = Run(@ComSpec & ' /U /C DIR "' & $s_Path_Search & '\' & $a_Masks[$i] & '"' & $s_Subdir & $s_Attrib, @SystemDir, @SW_HIDE, 6)
If Not $h_Dir Then Return SetError(1)
While 1
$s_Read = StdoutRead($h_Dir, False, True)
If @error Then
ExitLoop
EndIf
If $s_Read Then
$s_Out &= $s_Read
EndIf
Sleep(10)
WEnd
Next
$a_Out = StringRegExp(BinaryToString($s_Out, 2), '[^\r\n]+', 3)
If @error Then Return SetError(1)
$a_Out[0] = UBound($a_Out) - 1
Return $a_Out
EndFunc ;==>_FileSearch