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

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

pbnoob

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

Заранее спс.
 
хм... имхо все сводиться к выделению из массива Year max элемена сравнение его с cur_year.. если max > cur_year то удалять из Year максимальный елемент и начинать все заново
 
Как нарочно, только создал тему и осенило...
Вот то что мне было нужно.
(может кому пригодиться, в итоге задача довольнотаки тревиальной оказалась :( )
cur_year:=@Text(@Year(@Today));
full_year:=@Implode(Year;";");
cut_str:=@Left(full_year;cur_year)+cur_year;
@Explode(cut_str;";")

2Morpheus
идея понятна, только как ее на формулах реализовать я не понял :(
 
Для: Noob
имхо есть недостаток а если будет
Year:="2005":"2006":"2008":"2009":"2007";
и что тогда?
 
Вопрос в полне логичен.
Но у меня тот случай когда я лично составляю этот массив
(скажем так с запасом для общих целей) и поэтому неправильный порядок может возникнуть только как описка.

А если список не сортированный, то его можно отсортировать. (алгоритм описан
Получение списка N элементов от 1 до N)
 
Если версия 6 и выше, то можно с помощью @Transform.
 
Для: Medevic
ух ты просмотрел такую собаку... хороша )))
 
Для: Noob
та ниче я сам пересл с 4ки полгода назад )))
на старой работе до сих пор 4 - ка :) ;) :D
 
Понятно.
Кстати, можно сделать так:
@SubSet(Year; @Member(cur_year; Year))
 
Для: Medevic
Опять же при условии сортированного масива
 
Для: 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-ке сработает
Ы?
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab