powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Парсинг текстовой строки
16 сообщений из 16, страница 1 из 1
Парсинг текстовой строки
    #38106642
Frost_Imp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Комрады, приветствую!
Прошу помощи: есть строка вида
Код: plaintext
1.
{"error":0,"response":[{"count":29,"lost":0,"average":128,"positive":12,"negative":2}]}


Задача: либо сохранить в разные переменные значение каждого параметра (count, lost и т.д.) либо сразу раскидать эти значения по таблице.
Хотелось бы более изящный способ нежели комбинация MID и SEARCH, когда ищется ключевое слово, потом запятая после него, и уж потом выдергивается значение между ними.
_____________________
А что на самом деле хотел сказать "Frost_Imp" никто не знает, так как администрация форума попросила его быть вежливым.
...
Рейтинг: 0 / 0
Парсинг текстовой строки
    #38106649
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вы уверены, чо вам это стоит делать на VB 6.0 ?
это же json используйте возможности javascript или С# (там есть готовые классы для обработки)
...
Рейтинг: 0 / 0
Парсинг текстовой строки
    #38106662
Frost_Imp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_One, к сожалению, я ограничен лишь vb6.
А если этот текст будет не json, а, например, xml?
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
"<?xml version=""1.0""?>
<values>
  <error>0</error>
  <response>
    <response>
      <count>29</count>
      <lost>0</lost>
      <average>128</average>
      <positive>12</positive>
      <negative>2</negative>
    </response>
  </response>
</values>
"


но обрабатывать все равно средствами vb - это упростит дело?
...
Рейтинг: 0 / 0
Парсинг текстовой строки
    #38106668
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зачем парсить xml ? для этого же есть специальные средства XMLDocument
...
Рейтинг: 0 / 0
Парсинг текстовой строки
    #38106676
Frost_Imp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_One, я с ними не знаком. Буду признателен, если подскажете
...
Рейтинг: 0 / 0
Парсинг текстовой строки
    #38106697
Frost_Imp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, XMLDocument не очень подходит, так как у меня нет отдельного xml-файла, есть текстовая строка в ячейке, которую нужно обработать.
Поэтому проще вернуться к вопросу парсинга. Либо первого, либо второго варианта.
...
Рейтинг: 0 / 0
Парсинг текстовой строки
    #38106704
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще из json можно сделать js-объект с помощью Sript Control. Но если можно получать xml, то лучше его.
Буду признателен, если подскажетеБиблиотека называется Microsoft XML.
...
Рейтинг: 0 / 0
Парсинг текстовой строки
    #38106707
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Frost_ImpНет, XMLDocument не очень подходит, так как у меня нет отдельного xml-файла, есть текстовая строка в ячейке, которую нужно обработать.Он принимает строку.
...
Рейтинг: 0 / 0
Парсинг текстовой строки
    #38106712
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
подключите reference Microsoft XML
http://www.informit.com/articles/article.aspx?p=31360&seqNum=4
...
Рейтинг: 0 / 0
Парсинг текстовой строки
    #38106724
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот тут получше написано

http://msdn.microsoft.com/en-us/library/aa468547.aspx
...
Рейтинг: 0 / 0
Парсинг текстовой строки
    #38106733
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для загрузки из строки юзайте LoadXML()

простенький гайд с тестовой программкой
http://www.quepublishing.com/articles/article.aspx?p=25084&seqNum=2
...
Рейтинг: 0 / 0
Парсинг текстовой строки
    #38106742
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
+ вот тут очень неплохое описалово по MSXML2.DOMDocument
http://www.script-coding.com/XMLDOMscripts.html
...
Рейтинг: 0 / 0
Парсинг текстовой строки
    #38106770
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
Const strXML = _
"<?xml version=""1.0""?> " & _
"<values> " & _
"  <error>0</error> " & _
"  <response> " & _
"    <response> " & _
"      <count>29</count> " & _
"      <lost>0</lost> " & _
"      <average>128</average> " & _
"      <positive>12</positive> " & _
"      <negative>2</negative> " & _
"    </response> " & _
"  </response> " & _
"</values>"

Sub testt()
    Dim xmlParser As Object 'MSXML2.DOMDocument
    Dim xmlNode As Object 'MSXML2.IXMLDOMNode
    Dim xmlNodeList As Object 'MSXML2.IXMLDOMNodeList
    Dim xml_path As String
    '
    Set xmlParser = CreateObject("Msxml2.DOMDocument")
    If Not xmlParser.loadXML(strXML) Then
        MsgBox "Ахтунг !"
        Exit Sub
    End If
    '
    xml_path = "/values/response/response/*"
    Set xmlNodeList = xmlParser.documentElement.selectNodes(xml_path)
    For Each xmlNode In xmlNodeList
        Debug.Print xmlNode.nodeName, xmlNode.Text
    Next
    Set xmlParser = Nothing
End Sub


Код: vbnet
1.
2.
3.
4.
5.
6.
testt
count         29
lost          0
average       128
positive      12
negative      2
...
Рейтинг: 0 / 0
Парсинг текстовой строки
    #38106989
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для регулярных выражений это очень простая задача:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Sub bb()
Dim s$, x
s = "{""error"":0,""response"":[{""count"":29,""lost"":0,""average"":128,""positive"":12,""negative"":2}]}"
Debug.Print s
With CreateObject("vbscript.regexp")
    .Pattern = """([a-z]+)"":(\d+)"
    .Global = True
    .IgnoreCase = True
    For Each x In .Execute(s)
        Debug.Print x.submatches(0), x.submatches(1)
    Next
End With
End Sub
...
Рейтинг: 0 / 0
Парсинг текстовой строки
    #38111511
Frost_Imp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwerty112, спасибо огромное! Ваш код решил мою задачу!
...
Рейтинг: 0 / 0
Парсинг текстовой строки
    #38111513
Frost_Imp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Казанский, благодарю! Завтра попробую в действии
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Парсинг текстовой строки
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]