Что нового

замена параметра в конфиге, на основании данных из поля "$IPAddress..."

vld-k

Новичок
Сообщения
39
Репутация
0
Добрый день.
Есть конфиг PXE-сервера, в котором указан IP-адрес сервера.
Как в ГУИ указав адрес сервера, заменить его в тексте конфига?

Код:
$IPAddress1 = _GUICtrlIpAddress_Create($Form1, 48, 216, 118, 26)
_GUICtrlIpAddress_Set($IPAddress1, "0.0.0.0")


Конфиг PXE

Код:
LABEL Clonezilla html boot
MENU LABEL Clonezilla html boot
KERNEL images/clonezilla/vmlinuz
APPEND initrd=images/clonezilla/initrd.img boot=live config noprompt noswap nomodeset nolocales/nosplash edd=on vga=788 ocs_live_run="ocs-live-general" ocs_live_extra_param="" locales="ru_RU.UTF-8" ocs_live_keymap="NONE"  fetch=http://192.168.0.3/filesystem.squashfs  ocs_daemonon="ssh" ocs_numlk="on"
 
Автор
V

vld-k

Новичок
Сообщения
39
Репутация
0
Благодаря Garrett, удалось создать форму:

Код:
$sPath_ini = @ScriptDir & "\OpenDHCPServer.ini"
$Form1_1 = GUICreate("TORM Deploy", 234, 488, 362, 140)
$MenuItem1 = GUICtrlCreateMenu("Инфо")
$MenuItem2 = GUICtrlCreateMenuItem("Как пользоваться сервисом"&@TAB&"F1", $MenuItem1)
$MenuItem3 = GUICtrlCreateMenuItem("О программе"&@TAB&"F2", $MenuItem1)
GUISetIcon("D:\Downloads\tux_6839.ico", -1)
$Group1 = GUICtrlCreateGroup("Настройка параметров DHCP сервера", 8, 8, 217, 361)
$Label1 = GUICtrlCreateLabel("Пул IP адрессов", 48, 40, 87, 17)
$Label2 = GUICtrlCreateLabel("Шлюз", 48, 136, 33, 17)
$Label3 = GUICtrlCreateLabel("Адрес TFTP-сервера", 48, 200, 110, 17)
$Button1 = GUICtrlCreateButton("1 . Сохранить изменения", 32, 264, 163, 33)
$IPAddress1 = _GUICtrlIpAddress_Create($Form1_1, 48, 64, 130, 21)
_GUICtrlIpAddress_Set($IPAddress1, "192.168.0.10")
$IPAddress2 = _GUICtrlIpAddress_Create($Form1_1, 48, 96, 130, 21)
_GUICtrlIpAddress_Set($IPAddress2, "192.168.0.20")
$IPAddress3 = _GUICtrlIpAddress_Create($Form1_1, 48, 160, 130, 21)
_GUICtrlIpAddress_Set($IPAddress3, "192.168.0.1")
$IPAddress4 = _GUICtrlIpAddress_Create($Form1_1, 48, 224, 130, 21)
_GUICtrlIpAddress_Set($IPAddress4, "192.168.0.4")
$Button2 = GUICtrlCreateButton("2. Запуск DHCP+TFTP", 32, 312, 163, 33)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group2 = GUICtrlCreateGroup("  Локальный IP адрес", 48, 376, 137, 81)
$Label4 = GUICtrlCreateLabel(@IPAddress1, 64, 400, 140, 20)
$Label5 = GUICtrlCreateLabel(@IPAddress2, 64, 424, 140, 20)
GUICtrlCreateGroup("", -99, -99, 1, 1)
Dim $Form1_1_AccelTable[2][2] = [["{F1}", $MenuItem2],["{F2}", $MenuItem3]]
GUISetAccelerators($Form1_1_AccelTable)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
	
	Case $Button2
            Run('service.bat')
      Case $Button1
         IniWriteSection($sPath_ini, "RANGE_SET", _
                                      StringFormat('DHCPRange=%s-%s\nRouter=%s\nNextServer=%s', _
                                    _GUICtrlIpAddress_Get($IPAddress1), _GUICtrlIpAddress_Get($IPAddress2), _
                                    _GUICtrlIpAddress_Get($IPAddress3), _GUICtrlIpAddress_Get($IPAddress4)))
		   ;IniWriteSection($sPath_ini, "MY_OPTIONS", _
            ;                        StringFormat('NextServer=%s-%s\r\nAddress3=%s\r\nAddress4=%s\', _
             ;                       _GUICtrlIpAddress_Get($IPAddress1), _GUICtrlIpAddress_Get($IPAddress2), _
              ;                      _GUICtrlIpAddress_Get($IPAddress3), _GUICtrlIpAddress_Get($IPAddress4)))
		   
		Case $GUI_EVENT_CLOSE
			Exit

		Case $MenuItem2
		Case $MenuItem3
	EndSwitch
WEnd


Как я могу заменить данные в конфиге PXE, на основании введенных данных следующего:
Код:
$IPAddress4 = _GUICtrlIpAddress_Create($Form1_1, 48, 224, 130, 21)
_GUICtrlIpAddress_Set($IPAddress4, "192.168.0.4")
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
vld-k [?]
Как я могу заменить данные в конфиге PXE
Код:
;...
      Case $Button1
		 $hFile = FileOpen('test.txt', 0)
		 $sData = FileRead($hFile)
		 FileClose($hFile)
		 $sData = StringRegExpReplace($sData, '(?m)((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)', _GUICtrlIpAddress_Get($IPAddress4))
		 $hFile = FileOpen('test.txt', 2)
		 FileWrite($hFile, $sData)
		 FileClose($hFile)
;...
 
Автор
V

vld-k

Новичок
Сообщения
39
Репутация
0
В очередной раз, ОГРОМНОЕ ВАМ СПАСИБО!!! Все работает отлично. :IL_AutoIt_1:
Можете только немного объяснить что как Вы меняете данные именно в заданном месте?
Я понял что выборка данных осуществляется параметрами "(25[0-5]|2[0-4]\d|[01]?\d\d?)", но не совсем их понимаю.
 
Верх