Вопрос по собакоформулам

pbnoob

Well-Known Member
25.08.2006
135
0
37
#1
Есть массив
Year:="2005":"2006":"2007":"2008":"2009";
так же переменная
cur_year:="2007";
как на формулах получить массив res, в который будут входить все года не превышающие текущий?

Заранее спс.
 

morpheus

скриптописец
07.08.2006
3 915
1
34
Украина, Киев
#2
хм... имхо все сводиться к выделению из массива Year max элемена сравнение его с cur_year.. если max > cur_year то удалять из Year максимальный елемент и начинать все заново
 

pbnoob

Well-Known Member
25.08.2006
135
0
37
#3
Как нарочно, только создал тему и осенило...
Вот то что мне было нужно.
(может кому пригодиться, в итоге задача довольнотаки тревиальной оказалась :( )
cur_year:=@Text(@Year(@Today));
full_year:=@Implode(Year;";");
cut_str:=@Left(full_year;cur_year)+cur_year;
@Explode(cut_str;";")

2Morpheus
идея понятна, только как ее на формулах реализовать я не понял :(
 

pbnoob

Well-Known Member
25.08.2006
135
0
37
#5
Вопрос в полне логичен.
Но у меня тот случай когда я лично составляю этот массив
(скажем так с запасом для общих целей) и поэтому неправильный порядок может возникнуть только как описка.

А если список не сортированный, то его можно отсортировать. (алгоритм описан здесь
Получение списка N элементов от 1 до N)
 

Constantin A Chervonenko

Well-Known Member
Lotus team
#12
Для: Medevic
Опять же при условии сортированного масива
А вот и для несортированного:
Year:="2005":"2006":"2007":"2008":"2009";
cur_year:="2007";

sig:=@Sign(@TextToNumber(cur_year)-@TextToNumber(Year));
@Right(@Trim(@Replace(@Text(sig)+"|"+Year; "-1|"+Year; "")); "|")

Это даже в 4-ке сработает
Ы?