• Codeby web-security - Курс "Тестирование Веб-Приложений на проникновение с нуля" от команды codeby. Общая теория, подготовка рабочего окружения, пассивный фазинг и фингерпринт, Активный фаззинг, Уязвимости, Пост-эксплуатация, Инструментальные средства, Social Engeneering и многое другое. Подробнее ...

  • Мобильный клиент нашего форума для Android гаджетов доступен в Google Play Market по этой ссылке. Клиент можно скачать с нашего форума по этой ссылке. Последняя версия МК в нашем телеграм канале вот здесь

Операции с многозначными полями

Chron

Well-known member
16.08.2010
49
0
#1
Всем превед... У мну снова проблема с многозначными полями, а именно такая... в документы есть связанные с друг другом 2 многозначных поля... Суть такова, например: у первого поля такие элементы --> "A";"C";"F";"A";"B", у второго - "x";"x";"x";"x";"x"... Мне необходимо в первом поле выявить значения (или одно значение) "A", узнать его порядковый номер и заменить элементы с такими же номерами во втором поле на другое значение... т.е. второе поле будет выглядеть уже так, например --> "y";"x";"x";"y","x"... Возможно реализации скриптом?.. Я пробовал через формулы, своим недалеким умом допер до

Код:
@For(n := 1;
n <= @Elements(ПОЛЕ1);
n := n + 1;
@If(ПОЛЕ1[n]="A";
@Set(ПОЛЕ2[n];"y");
"")
)
естественно не работает)))... Хотел бы услышать ваши советы...
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#4
Вроде как по индексу нельзя менять элемент.
 

Chron

Well-known member
16.08.2010
49
0
#5
Попробуйте без @Set.
ПОЛЕ2[n]:="y";
должно работать
Не получается... Удивительным образом после сохранения агента строчка ПОЛЕ2[n]:="y" преобразуется в ПОЛЕ2[n:="y"] :rolleyes:


Добавлено: С помощью @Replace в пределах одного поля вроде работается....
 

Kizarek86

Lotus team
20.07.2007
864
4
#7
Код:
	Dim FIELD1 As Variant
Dim FIELD2 As Variant
Dim i As Integer

FIELD1 = doc.getitemvalue("ПОЛЕ1")
FIELD2 = doc.getitemvalue("ПОЛЕ2")

For i=0 To Ubound(FIELD1)
If FIELD1(i)="А" Then FIELD2(i) = "y"
Next

Call doc.ReplaceItemValue("ПОЛЕ2", FIELD2)
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#8
Код:
a := "A" : "C" : "F" : "A" : "B";
b := "x" : "x" : "x" : "x" : "x";
c := "A";
d := "y";
@Right(@Replace(a + "|" + b; c + "|" + b; a + "|" + d); "|")
 
D

Darker

#9
Medevic, гениально! +1

единственное - над разделителем надо подумать (посложнее, чтоб не встретился где-нибудь)
 
Вверх Снизу