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

pbnoob

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

Заранее спс.
 

morpheus

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

pbnoob

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

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

morpheus

скриптописец
07.08.2006
3 915
1
#4
Для: Noob
имхо есть недостаток а если будет
Year:="2005":"2006":"2008":"2009":"2007";
и что тогда?
 

pbnoob

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

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

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#6
Если версия 6 и выше, то можно с помощью @Transform.
 

morpheus

скриптописец
07.08.2006
3 915
1
#7
Для: Medevic
ух ты просмотрел такую собаку... хороша )))
 

morpheus

скриптописец
07.08.2006
3 915
1
#9
Для: Noob
та ниче я сам пересл с 4ки полгода назад )))
на старой работе до сих пор 4 - ка :) ;) :D
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#10
Понятно.
Кстати, можно сделать так:
@SubSet(Year; @Member(cur_year; Year))
 

morpheus

скриптописец
07.08.2006
3 915
1
#11
Для: Medevic
Опять же при условии сортированного масива
 
30.05.2006
1 345
11
#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-ке сработает
Ы?