1

Тема: AHK: Добавление переменных в строки

grp1 := -123
grp2 := -456
grp3 := -789

Wall_Info_List =
(
{
"response": [[{
"ids": [380061, 419984, 419674, 419602],
"comments": [0, 93, 87, 55]
}], [{
"ids": [54514, 55045, 55026, 54956],
"comments": [19, 1, 3, 20]
}], [{
"ids": [37816, 49610, 49605, 49593],
"comments": [3, 4, 1, 6]
}]]
}
)

Привет. Как добавить в приведенном примере кода: к первым "ids" — переменную "grp1", ко вторым — переменную "grp2" — и так далее, в зависимости от количества строк с "ids", с таким результатом? —

grp1 := -123
grp2 := -456
grp3 := -789

Wall_Info_List =
(
{
"response": [[{
"ids": [-123_380061, -123_419984, -123_419674, -123_419602],
"comments": [0, 93, 87, 55]
}], [{
"ids": [-456_54514, -456_55045, -456_55026, -456_54956],
"comments": [19, 1, 3, 20]
}], [{
"ids": [-789_37816, -789_49610, -789_49605, -789_49593],
"comments": [3, 4, 1, 6]
}]]
}
)

Это надо для мониторинга ВКонтакта — появилась возможность отслеживать за один вызов — обновление для ста последних постов, в — до 25-ти сообществах.

2

Re: AHK: Добавление переменных в строки

Да, и так можно, тоже подойдёт. Просто предположил, что для JSON код будет объёмней, в отличие от обработки в виде обычного текста.

3

Re: AHK: Добавление переменных в строки

Так обрабатывайте в виде обычного текста.
Циклом либо регуляркой проходитесь по строкам, вытаскиваете нужные вам значения и заменяете их на новые.

4 (изменено: DD, 2018-08-15 00:43:08)

Re: AHK: Добавление переменных в строки

Вот всё, что получилось. Не понятно, как подставлять следующие переменные с учётом строк с "ids":

grp1 := -123
grp2 := -456
grp3 := -789

Wall_Info_List =
(
{
"response": [[{
"ids": [380061, 419984, 419674, 419602],
"comments": [0, 93, 87, 55]
}], [{
"ids": [54514, 55045, 55026, 54956],
"comments": [19, 1, 3, 20]
}], [{
"ids": [37816, 49610, 49605, 49593],
"comments": [3, 4, 1, 6]
}]]
}
)
n := 0
Loop, parse, Wall_Info_List, `n
{
   str := A_LoopField
   ifInString, A_Loopfield, "ids"
   {
       n+=1
       str := RegExReplace(str, "(\d+)", grp%n% "_$1")
   }
   txtAll .= str "`n"
}
Msgbox, %txtAll%

5

Re: AHK: Добавление переменных в строки

При нахождении нужной строки увеличивайте счётчик n на 1 и в regexreplace замену делайте на grp%n%.

6

Re: AHK: Добавление переменных в строки

Спасибо, отредактировал. А как сделать, чтобы изменения отразились во входном тексте?

7

Re: AHK: Добавление переменных в строки

Сохраняйте всё в новую переменную.

+ DD