andreitrane
Новичок
- Сообщения
- 141
- Репутация
- 3
у меня 2 вопроса
1 - когда приходит пакет, из него надо вытащить данные, если данные записаны на английском (<name>AutoIter</name>), то программа вытаскивает данные без проблем и записывает в input без изменений, но если во входящем пакете данные на русском, то они закодированы (<name>%5B%D0%92%D0%91%5D%20%D0%93%D0%95%D0%A5%D0%90</name>) и скрипт записывает эти данные в таком же закодированном виде... как сделать чтобы скрипт перекодировал обратно на русский и записывал (уже на русском) в input?
2 - с помощью команды StringRegExpReplace можно вынимать из входящего пакета данные, но как я понял если эти данные уникальны... как сделать чтобы можно было вынимать данные, если они повторяются, но значение в них разное?
данные выглядят так
<collection>1</collection>
<collection>2</collection>
<collection>3</collection>
<collection>4</collection>
<collection>5</collection>
<collection>6</collection>
<collection>7</collection>
как видите <collection> повторяются, но данные в них разные, и
может показать только самое первое, а тоесть <collection>1</collection>
а мне надо полностью все значения...
1 - когда приходит пакет, из него надо вытащить данные, если данные записаны на английском (<name>AutoIter</name>), то программа вытаскивает данные без проблем и записывает в input без изменений, но если во входящем пакете данные на русском, то они закодированы (<name>%5B%D0%92%D0%91%5D%20%D0%93%D0%95%D0%A5%D0%90</name>) и скрипт записывает эти данные в таком же закодированном виде... как сделать чтобы скрипт перекодировал обратно на русский и записывал (уже на русском) в input?
Код:
$Response = $oHTTP.ResponseText
$Responsetext = BinaryToString($Response)
$sMsgname = StringRegExpReplace($Responsetext, '(?s).*?<name>(.*?)</name>?.*', '\1')
GUICtrlSetData($input, $sMsgname)
2 - с помощью команды StringRegExpReplace можно вынимать из входящего пакета данные, но как я понял если эти данные уникальны... как сделать чтобы можно было вынимать данные, если они повторяются, но значение в них разное?
данные выглядят так
<collection>1</collection>
<collection>2</collection>
<collection>3</collection>
<collection>4</collection>
<collection>5</collection>
<collection>6</collection>
<collection>7</collection>
как видите <collection> повторяются, но данные в них разные, и
Код:
$sMsgcollect = StringRegExpReplace($Response, '(?s).*?<collection>(\d+)</collection>?.*', '\1')
может показать только самое первое, а тоесть <collection>1</collection>
а мне надо полностью все значения...