Суть просто, хочу написать приложение (начало во вложении), где будет input, после введения команды в него, мне надо как-то её распарсить (на данный момент примитивный вариант реализован регэкспом). Проблема в том, что в инпут планируется добавлять совершенно разношерстные команды например:
PingList add 192.168.001.001 [ЗФС БУ-СГС] - эта команда сейчас принимается программой и создает в ListBox новую строку с введенными данными.
Команды повторюсь будут совершенно разношерстными
Scan local 192.168.1.1-150 (сосканировать опр участок локальной сети)
pinglist start monitor
pinglist on/off
И тд и тп, команды приведены чисто для примера понимания что они будут не шаблонными. Как реализовать работу с GUI и сами функции я знаю.
Помогите с регэкспами. Или может кто-то реализовывал нечто подобное другими работающими способами.
Тестовая функция принимающая текстовую команду выглядит так:
PingList add 192.168.001.001 [ЗФС БУ-СГС] - эта команда сейчас принимается программой и создает в ListBox новую строку с введенными данными.
Команды повторюсь будут совершенно разношерстными
Scan local 192.168.1.1-150 (сосканировать опр участок локальной сети)
pinglist start monitor
pinglist on/off
И тд и тп, команды приведены чисто для примера понимания что они будут не шаблонными. Как реализовать работу с GUI и сами функции я знаю.
Помогите с регэкспами. Или может кто-то реализовывал нечто подобное другими работающими способами.
Тестовая функция принимающая текстовую команду выглядит так:
Код:
Func _button_Execute()
Local $msg = GUICtrlRead($input_CMD)
If $msg="" Then Return
;~ $var = "PingList add"
$pattern = "(.*?PingList).(.*?add).(.*?[0-2][0-9][0-9]\.[0-2][0-9][0-9]\.[0-2][0-9][0-9]\.[0-2][0-9][0-9]).\[(.*?)\]"
$res = StringRegExp($msg, $pattern, 2)
If Not @error Then
;~ MsgBox(0,0,$res[1])
;~ MsgBox(0,0,$res[2])
;~ MsgBox(0,0,$res[3])
$var = _GUICtrlListView_GetItemCount($listview_PingList)
_GUICtrlListView_AddItem($listview_PingList, $var+1)
;~ _GUICtrlListView_AddSubItem($listview_PingList, 0, $res[2], 1)
_GUICtrlListView_AddSubItem($listview_PingList, $var, $res[3], 3)
_GUICtrlListView_AddSubItem($listview_PingList, $var, $res[4], 2)
_GUICtrlListView_SetColumnWidth($listview_PingList, 0, $LVSCW_AUTOSIZE)
_GUICtrlListView_SetColumnWidth($listview_PingList, 1, $LVSCW_AUTOSIZE)
_GUICtrlListView_SetColumnWidth($listview_PingList, 2, $LVSCW_AUTOSIZE)
_GUICtrlListView_SetColumnWidth($listview_PingList, 3, $LVSCW_AUTOSIZE)
_GUICtrlListView_SetColumnWidth($listview_PingList, 4, $LVSCW_AUTOSIZE)
_GUICtrlListView_SetColumnWidth($listview_PingList, 5, $LVSCW_AUTOSIZE)
EndIf
;~ $var = StringReplace($msg, "/PingList ", "")
;~ If @extended = 1 Then
;~ MsgBox(0,0,"["&$var&"]")
;~ EndIf
EndFunc