Что нового

[Сеть, интернет] как избавиться от записи ненужных значений в input

andreitrane

Новичок
Сообщения
141
Репутация
3
если во входящем пакете отсутствует <boss id="1">(\d+)</boss>, то в input записывается полный код входящего пакета
Код:
$sMsgboss1 = StringRegExpReplace($Response, '(?s).*?<boss id="1">(\d+)</boss>?.*', '\1')

если написать так, то не помогает
Код:
if not $sMsgboss1 Then
				GUICtrlSetData($kirpinflab, " -")
			Else
				GUICtrlSetData($kirpinflab, $sMsgboss1)
				endif

что надо записать?
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
andreitrane
Попробуйте так:
Код:
;...
$sMsgboss1 = StringRegExpReplace($Response, '(?s).*?<boss id="1">(\d+)</boss>?.*', '\1')
If @extended <> 1 Or Not $sMsgboss1 Then
	GUICtrlSetData($kirpinflab, " -")
Else
	GUICtrlSetData($kirpinflab, $sMsgboss1)
EndIf
;...
 
Автор
A

andreitrane

Новичок
Сообщения
141
Репутация
3
спасибо, робит, еще я вот такую штучку нашел, вроде тоже работает)))
Код:
if $sMsgboss1 <> -1 then
				GUICtrlSetData($kirpinflab, " -")
			Else
				GUICtrlSetData($kirpinflab, $sMsgboss1)
				endif
 
Автор
A

andreitrane

Новичок
Сообщения
141
Репутация
3
все же или у меня руки кривые, или скрипт не работает...
так выглядит то, что надо вытащить

Код:
			<boss id="1">1160</boss>
			<boss id="2">427</boss>
			<boss id="3">318</boss>
			<boss id="4">101</boss>
			<boss id="5">72</boss>
			<boss id="6">7</boss>
			<boss id="7">5</boss>
			<boss id="8">3</boss>
			<boss id="9">1</boss>

это то, что у меня получилось
Код:
$sMsgboss1 = StringRegExpReplace($Response, '(?s).*?<boss id="1">(\d+)</boss>?.*', '\1')
			$sMsgboss2 = StringRegExpReplace($Response, '(?s).*?<boss id="2">(\d+)</boss>?.*', '\1')
			$sMsgboss3 = StringRegExpReplace($Response, '(?s).*?<boss id="3">(\d+)</boss>?.*', '\1')
			$sMsgboss4 = StringRegExpReplace($Response, '(?s).*?<boss id="4">(\d+)</boss>?.*', '\1')
			$sMsgboss5 = StringRegExpReplace($Response, '(?s).*?<boss id="5">(\d+)</boss>?.*', '\1')
			$sMsgboss6 = StringRegExpReplace($Response, '(?s).*?<boss id="6">(\d+)</boss>?.*', '\1')
			$sMsgboss7 = StringRegExpReplace($Response, '(?s).*?<boss id="7">(\d+)</boss>?.*', '\1')
			$sMsgboss8 = StringRegExpReplace($Response, '(?s).*?<boss id="8">(\d+)</boss>?.*', '\1')
			$sMsgboss9 = StringRegExpReplace($Response, '(?s).*?<boss id="9">(\d+)</boss>?.*', '\1')
			$sMsgboss10 = StringRegExpReplace($Response, '(?s).*?<boss id="10">(\d+)</boss>?.*', '\1')
			If @extended <> 1 Or Not $sMsgboss1 Then
    GUICtrlSetData($kirpinflab, " -")
Else
    GUICtrlSetData($kirpinflab, $sMsgboss1)
EndIf


			If @extended <> 1 Or Not $sMsgboss2 Then
   GUICtrlSetData($sizinflab, " -")
Else
    GUICtrlSetData($sizinflab, $sMsgboss2)
EndIf


			If @extended <> 1 Or Not $sMsgboss3 Then
    GUICtrlSetData($mahinflab, " -")
Else
    GUICtrlSetData($mahinflab, $sMsgboss3)
EndIf


			If @extended <> 1 Or Not $sMsgboss4 Then
    GUICtrlSetData($lutinflab, " -")
Else
    GUICtrlSetData($lutinflab, $sMsgboss4)
EndIf


			If @extended <> 1 Or Not $sMsgboss5 Then
    GUICtrlSetData($shaibainflab, " -")
Else
    GUICtrlSetData($shaibainflab, $sMsgboss5)
EndIf
if $sMsgboss1 <> -1 then
				GUICtrlSetData($kirpinflab, " -")
			Else
				GUICtrlSetData($kirpinflab, $sMsgboss1)
				endif


			If @extended <> 1 Or Not $sMsgboss6 Then
    GUICtrlSetData($palinflab, " -")
Else
    GUICtrlSetData($palinflab, $sMsgboss6)
EndIf


			If @extended <> 1 Or Not $sMsgboss7 Then
    GUICtrlSetData($ciklopinflab, " -")
Else
    GUICtrlSetData($ciklopinflab, $sMsgboss7)
EndIf


			If @extended <> 1 Or Not $sMsgboss8 Then
    GUICtrlSetData($besinflab, " -")
Else
    GUICtrlSetData($besinflab, $sMsgboss8)
EndIf


			If @extended <> 1 Or Not $sMsgboss9 Then
    GUICtrlSetData($paleniiinflab, " -")
Else
    GUICtrlSetData($paleniiinflab, $sMsgboss9)
EndIf


			If @extended <> 1 Or Not $sMsgboss10 Then
    GUICtrlSetData($borzinflab, " -")
Else
    GUICtrlSetData($borzinflab, $sMsgboss10)
EndIf

но даже если эти строчки есть, то всеравно во все inputы пишет " -"
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
andreitrane
Значение @extended имеет какое либо значение только для последней отработавшей функции и относится только к ней. Подробнее см. справку.
Код:
;...
$sMsgboss1 = StringRegExpReplace($Response, '(?s).*?<boss id="1">(\d+)</boss>?.*', '\1')
If @extended <> 1 Or Not $sMsgboss1 Then ;здесь @extended относится к функции на предыдущей строке
	GUICtrlSetData($kirpinflab, " -")
Else
	GUICtrlSetData($kirpinflab, $sMsgboss1)
EndIf
$sMsgboss2 = StringRegExpReplace($Response, '(?s).*?<boss id="2">(\d+)</boss>?.*', '\1')
If @extended <> 1 Or Not $sMsgboss2 Then ;здесь тоже и т.д.
	GUICtrlSetData($sizinflab, " -")
Else
	GUICtrlSetData($sizinflab, $sMsgboss2)
EndIf
; и.т.д.
 
Верх