• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

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

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

pbnoob

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

Заранее спс.
 
M

morpheus

хм... имхо все сводиться к выделению из массива Year max элемена сравнение его с cur_year.. если max > cur_year то удалять из Year максимальный елемент и начинать все заново
 
P

pbnoob

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

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

morpheus

Для: Noob
имхо есть недостаток а если будет
Year:="2005":"2006":"2008":"2009":"2007";
и что тогда?
 
P

pbnoob

Вопрос в полне логичен.
Но у меня тот случай когда я лично составляю этот массив
(скажем так с запасом для общих целей) и поэтому неправильный порядок может возникнуть только как описка.

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

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
Если версия 6 и выше, то можно с помощью @Transform.
 
M

morpheus

Для: Medevic
ух ты просмотрел такую собаку... хороша )))
 
M

morpheus

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

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
Понятно.
Кстати, можно сделать так:
@SubSet(Year; @Member(cur_year; Year))
 
M

morpheus

Для: Medevic
Опять же при условии сортированного масива
 
30.05.2006
1 345
12
BIT
0
Для: 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-ке сработает
Ы?
 
Мы в соцсетях:

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