Список форумов AmiSite.ru AmiSite.ru
Форум по Ами
 FAQ  •  Поиск  •  Пользователи  •  Группы   •  Регистрация  •  Профиль  •  Войти и проверить личные сообщения  •  Вход
 Нужно сдвинуть сементированный массив назад Следующая тема
Предыдущая тема
Начать новую тему  Ответить на тему
Автор Сообщение
gonzalezz



Зарегистрирован: 26.02.2010
Сообщения: 47

СообщениеДобавлено: Пн Май 07, 2012 2:49 pm Ответить с цитатой Вернуться к началу

Всем привет!

Есть массив данных и массив разделителей. Нужно получить массив содержащий последнее
значение диапазона, но сдвинутое к началу и растянутое на весь диапазон. Как то так:

Код:
array = данные;                                           //|12321212|34567876|43212345|
segments = разделитель;                                    //|10000000|10000000|10000000|
dataOnClose = Ref(array, - (BarsSince(segments)) - 1);   //|XXXXXXXX|22222222|66666666|
result = теперь хочу сдвинуть результат на один сегмент назад; //|22222222|66666666|55555555|


Всю башку сломал, цикл не годиться, очень медленно. Может кто делел такое?
П.С. диапазоны конечно разной длины могут быть, иначе все просто было бы.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Пн Май 07, 2012 5:16 pm Ответить с цитатой Вернуться к началу

Не очень понял вопрос, но вероятно надо смотреть в сторону функции ValueWhen()

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
gonzalezz



Зарегистрирован: 26.02.2010
Сообщения: 47

СообщениеДобавлено: Чт Май 10, 2012 8:53 am Ответить с цитатой Вернуться к началу

000 писал(а):
Не очень понял вопрос, но вероятно надо смотреть в сторону функции ValueWhen()


Там в комментарии пример того что есть и того что нужно. Для удобства символом "|" отмечены единички разделяющего массива (ну сегменты что ли). Так вот, хочу чтобы последнее значение каждого сегмента было сдвинуто к его началу и растянуто на весь сегмент. Понятно что за один проход не сделать, ну думаю что как то возможно. До сих пор все невозможное удавалось таки реализовать на АФЛ. Покручу ValueWhen, но не ясно что будет условием.
Посмотреть профиль Отправить личное сообщение
gonzalezz



Зарегистрирован: 26.02.2010
Сообщения: 47

СообщениеДобавлено: Чт Май 10, 2012 11:47 am Ответить с цитатой Вернуться к началу

Спасибо за направление ! Гениально просто:
Код:
result = ValueWhen(segments, data, 0);

Это слишком просто чтобы допереть самостоятельно Embarassed
Посмотреть профиль Отправить личное сообщение
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



Следующая тема
Предыдущая тема
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы не можете скачивать файлы


Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme :: Часовой пояс: GMT + 3

File Attachment © by Meik Sievertsen