Мне нужно разобрать проприетарную строку с сервера tcp. строки я получаю следующее:Parse proprietary returnstring из сервера
!re.tag=3=.id=*1=name=1 Hour=owner=admin=name-for-users==validity=3h=starts-at=logon=price=0=override-shared-users=off~!re.tag=3=.id=*2=name=3 Hour=owner=admin=name-for-users==validity=3h=starts-at=logon=price=0=override-shared-users=off~!done.tag=3~
Так что, когда чередование от в done.tag .... и Деление строки на ~ я могу сломать (в данном случае) два объекта
!re.tag=3=.id=*1=name=1 Hour=owner=admin=name-for-users==validity=3h=starts-at=logon=price=0=override-shared-users=off~
!re.tag=3=.id=*2=name=3 Hour=owner=admin=name-for-users==validity=3h=starts-at=logon=price=0=override-shared-users=off~
then im сталкивается с проблемой, как разделить свойства и их значения.
!re.tag=3
=.id=*2
=name=3 Hour
=owner=admin
=name-for-users=
=validity=3h
=starts-at=logon
=price=0
=override-shared-users=off
Обычно я буду делать раскол на знак равенства, как это:
List<string> arProfiles = profilString.Split('=').ToList();
и тогда я могу предположить, что значение «имя» свойство находится в положении 5 (!) .
есть ли более правильный способ для разбора такого рода строк (этот в то время как я буду получать такие же строки из разных функций)
Пола
Почему вы угадать? У вас нет документации для того, что означает эта строка и как она структурирована? –
Я хотел бы сделать комплимент создателю этой проприетарной строки формата – InferOn
@ LasseV.Karlsen Я предполагаю, что создатель этого формата изменил что-то в последней версии прошивки, а затем мой код больше не работал (они добавили еще один equals sign, в прошлом значение Name было в позиции 4) –