• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Перебор элементов массива на формулах

  • Автор темы pbnoob
  • Дата начала
P

pbnoob

Проблема заключается в следующем:
есть текстовое поле(Allow multiple values), которое вычисляется следующим образом:

NP:=Subject ;
S:=@Subset(@DbName ; 1);
F:=@DbLookup("":"NoCache" ; "" ; "TaskByProject" ; NP ; 3) ;
@If(@IsError(F ) ; "" ;
@if(@length(F)<45 ; F ; @left(F ; 42)+"..." ) )

Последняя строчка не прокатывает. Как мне просмотреть все значения параметра F
с целью определения их длинны (в поле F текстовые строки различной длины)
 
D

Dikobraz Grey

@Transform(f;"x";@if(@length(x)<45 ; x ; @left(x ; 42)+"..." ) ))
 
P

pbnoob

<!--QuoteBegin-Dikobraz Grey+13:09:2006, 20:34 -->
<span class="vbquote">(Dikobraz Grey @ 13:09:2006, 20:34 )</span><!--QuoteEBegin-->@Transform(f;"x";@if(@length(x)<45 ; x ; @left(x ; 42)+"..." ) ))
[snapback]43811" rel="nofollow" target="_blank[/snapback]​
[/quote]

Спасибо огромное за подсказку, только сейчас всплыл один неприятный момент: я работаю на пятом лотусе, а не на шестом. Там этой функции я не нашел. И мне уже в реале сказали, что такой код в пятом не прокатит. Возможно только урезание типа @Left(F ; 42) без добавления "..." ;)
 
30.05.2006
1 345
12
BIT
0
Спасибо огромное за подсказку, только сейчас всплыл один неприятный момент: я работаю на пятом лотусе, а не на шестом. Там этой функции я не нашел. И мне уже в реале сказали, что такой код в пятом не прокатит. Возможно только урезание типа @Left(F ; 42) без добавления "..." ;)
А строки у тебя уникальные? Для уникальных точно можно такое преобразование замутить, для НЕуникальных пока не придумал..
 
P

pbnoob

<!--QuoteBegin-Constantin A Chervonenko+14:09:2006, 15:04 -->
<span class="vbquote">(Constantin A Chervonenko @ 14:09:2006, 15:04 )</span><!--QuoteEBegin-->А строки у тебя уникальные? Для уникальных точно можно такое преобразование замутить, для НЕуникальных пока не придумал..
[snapback]43886" rel="nofollow" target="_blank[/snapback]​
[/quote]

к сожалению неуникальные. (но помести пожалуйста тут решение для уникальных, может оно подтолкнет к перебору и неуникальных)
 
30.05.2006
1 345
12
BIT
0
к сожалению неуникальные. (но помести пожалуйста тут решение для уникальных, может оно подтолкнет к перебору и неуникальных)
А как вам такое решение:

C :=@Trim(<исх.список>);

S:=@Sign(@Length( C )-45);
FL:=@Replace(@Text(S);"-1":"0":"1";"-":"-":"+");

@Replace(FL+C; ("-"+C) : ("+"+C); C : (@Left(C;42)+"..."))

Ы?
 
P

pbnoob

Для: Constantin A Chervonenko

Ахринеть, у меня нет слов (и у моего начальника тоже) все сработало, но опять же при условии, что у нас все элементы списка были разные. Но мы в восторге!!! Огромное спасибо!!!! :angry: :angry:
 
30.05.2006
1 345
12
BIT
0
Для: Constantin A Chervonenko

Ахринеть, у меня нет слов (и у моего начальника тоже) все сработало, но опять же при условии, что у нас все элементы списка были разные. Но мы в восторге!!! Огромное спасибо!!!! :angry: :angry:
"Я еще и на машинке строчить могу.."(с)
А вроде и для неуникальных должно работать. Впрочем, когда список проверки неуникален.... Но это можно полечить.

Вообще, манипуляции со списками в собако-формулах - это что-то... МощА невероятная, но мозги вывернуть приходится, если они не окончательно заштампованы С
 
P

pbnoob

<!--QuoteBegin-Constantin A Chervonenko+19:09:2006, 21:59 -->
<span class="vbquote">(Constantin A Chervonenko @ 19:09:2006, 21:59 )</span><!--QuoteEBegin-->Вообще, манипуляции со списками в собако-формулах - это что-то... МощА невероятная, но мозги вывернуть приходится, если они не окончательно заштампованы С
[snapback]44091" rel="nofollow" target="_blank[/snapback]​
[/quote]

заштампованы :) (штамповал 4 года :) )
 
30.05.2006
1 345
12
BIT
0
C :=@Trim(<исх.список>);

S:=@Sign(@Length( C )-45);
FL:=@Replace(@Text(S);"-1":"0":"1";"-":"-":"+");

@Replace(FL+C; ("-"+C) : ("+"+C); C : (@Left(C;42)+"..."))
Уточнение для неуникальных списков:
...
T:=@Unique( C );
@Replace(FL+C; ("-"+T) : ("+"+T); T : (@Left(T;42)+"..."))

Не проверял, но вроде так...
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!