![]() |
![]() |
|
Удаление строки из списка значений | ☑ | ||
---|---|---|---|---|
0
SurFace
26.06.09
✎
17:17
|
Каким способом можно удалить строку из списка значений. Переливание в другой список нжуных строк предполагаю займет большего времени.
|
|||
1
also
26.06.09
✎
17:18
|
А вот почитать СП не судьба
|
|||
2
zbv
26.06.09
✎
17:18
|
(0) удалить() - не катит?
|
|||
3
also
26.06.09
✎
17:18
|
Раздел Список значений
|
|||
4
also
26.06.09
✎
17:19
|
>>Переливание в другой список нжуных строк предполагаю займет большего времени
А это пять конечно...За идею ) |
|||
5
SurFace
26.06.09
✎
17:23
|
в СП не нашел, , метода Удалить у строки списка нет.
метод удалить существует для списка значений - т.е. чтобы удалить строки из саписка нужно прогнать список, определить идентификаторы строк, циклом прогнать идентификаторы с методом списка значей удалить |
|||
6
73
26.06.09
✎
17:24
|
(5) Плохо искал:
СписокЗначений (ValueList) Удалить (Delete) Синтаксис: Удалить(<Элемент>) Параметры: <Элемент> (обязательный) Тип: Число, ЭлементСпискаЗначений. Индекс удаляемого элемента либо сам элемент. Описание: Удаляет элемент из списка значений. Пример: // удаление по индексу в списке СписокТиповЦен.Удалить(0); // удаление по элементу НайденныйЭлемент = СписокТиповЦен.НайтиПоЗначению(ВыбЗначение); Если НайденныйЭлемент <> Неопределено Тогда СписокТиповЦен.Удалить(НайденныйЭлемент); Иначе Сообщить("Значение не найдено!"); КонецЕсли; |
|||
7
SurFace
26.06.09
✎
17:29
|
вот про это я и описал - для такого методанужно знать идентификатор строки
|
|||
8
Птица
26.06.09
✎
17:30
|
(7)эээ. а что это такое - идентификатор строки?
|
|||
9
Mitriy
26.06.09
✎
17:31
|
(7) а ты хочешь удалить абы какое значение из списка?
|
|||
10
SurFace
26.06.09
✎
17:31
|
Для каждого СтрокаСпискаНайденныхОбъектов из СписокНайденныхОбъектов Цикл
Если СтрокаСпискаНайденныхОбъектов.Значение.Яркость <> 5000 Тогда СписокНайденныхОбъектов.Удалить(СтрокаСпискаНайденныхОбъектов); КонецЕсли; КонецЦикла; |
|||
11
Mitriy
26.06.09
✎
17:33
|
(10) не взлетит...
|
|||
12
Mitriy
26.06.09
✎
17:34
|
(10) сначала найди все элементы, а потом уже удаляй их...
|
|||
13
SurFace
26.06.09
✎
17:35
|
вот в пункте (5) эту мысль излагал -а в (10) появилась другая удалять налету элементы
|
|||
14
Mitriy
26.06.09
✎
17:36
|
(13) тогда надо с конца идти, а не с начала...
|
|||
15
SurFace
26.06.09
✎
17:37
|
(14) индексы меняются?
|
|||
16
Mitriy
26.06.09
✎
17:38
|
(15) угу...
|
|||
17
SurFace
26.06.09
✎
17:40
|
(16) теперь понятно почему половина элементов осталась неотфильтрована =).
Тогда возникает другой вопрос как список значений пролистать задом наперед? |
|||
18
73
26.06.09
✎
17:51
|
КвоЭлементов = Список.Количество();
Для й=1 по КвоЭлементов Цикл Сообщить(Список[КвоЭлементов-й].Значение); КонецЦикла; |
|||
19
SurFace
26.06.09
✎
18:02
|
(18) что-то непонятно странное
(4) вот так работает СписокНайденныхОбъектовУрезанный = Новый СписокЗначений; Для каждого СтрокаСпискаНайденныхОбъектов из СписокНайденныхОбъектов Цикл Если СтрокаСпискаНайденныхОбъектов.Значение.Яркость = 5000 Тогда // СписокНайденныхОбъектов.Удалить(СтрокаСпискаНайденныхОбъектов); СписокНайденныхОбъектовУрезанный.Добавить(СтрокаСпискаНайденныхОбъектов.Значение); КонецЕсли; КонецЦикла; |
|||
20
73
26.06.09
✎
18:07
|
(19) Что непонятно?
Обращаемся по индексу [Количество - перем цикла] Ну если полностью для твоего случая, то типа так: КвоЭлементов = СписокНайденныхОбъектов.Количество(); Для й=1 по КвоЭлементов Цикл Если СписокНайденныхОбъектов[КвоЭлементов-й].Значение.Яркость <> 5000 Тогда СписокНайденныхОбъектов.Удалить(КвоЭлементов-й); КонецЕсли; КонецЦикла; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |