|
Вариации на тему самого быстрого способа удаления строк из таблицы значений |
☑ |
0
12345
14.10.04
✎
11:23
|
Есть такой конкурс. Кстати, mszus, слово "неправильно" пишеться слитно!
Это вариант TDV c очевидной оптимизацией.
Воробей=МаксЗнач/2;
Тз.Новаяколонка("Птичка");
Тз.Заполнить(Воробей,,,"Птичка");
Тз.ВыбратьСтроки();
КонСтрока=Мин(ТЗ.НоваяКолонка("СЛУЖ_КОЛ"), 0); ТЗ.ВыбратьСтроки();
Пока ТЗ.ПолучитьСтроку()=1 Цикл
Если ТЗ.К<Тз.Птичка Тогда
КонСтрока=КонСтрока+1;
ТЗ.СЛУЖ_КОЛ=1;
КонецЕсли;
КонецЦикла;
Если (КонСтрока=0) ИЛИ (КонСтрока=ТЗ.КоличествоСтрок()) Тогда
ТЗ.КоличествоСтрок(КонСтрока);
ТЗ.УдалитьКолонку("СЛУЖ_КОЛ");
Тз.УдалитьКолонку("Птичка");
Иначе
ТЗ.Сортировать("-СЛУЖ_КОЛ");
ТЗ.УдалитьКолонку("СЛУЖ_КОЛ");
ТЗ.Выгрузить(ТЗ_СЛУЖ,,КонСтрока);
ТЗ=ТЗ_СЛУЖ;
Тз.УдалитьКолонку("Птичка");
КонецЕсли;
Если ту же идею, то есть замену вызова функции обращением к дополнительной колонке в таблице значений, применить к методу NS, то
будет еще быстрее (~10%).
|
|
1
Последний Будда
14.10.04
✎
11:31
|
Осмелюсь утверждать, что есть еще более быстрый способ. Давайте здесь проведем конкурс?
|
|
2
Волшебник
14.10.04
✎
11:39
|
(0) здесь пишется "пишется". Прежде чем корректировать других, научись сам.
См. также:
Какой самый быстрый метод удаление строк в ТЗ
|
|
3
12345
14.10.04
✎
11:46
|
Да, ошибся. Но ошибаться все могут, например "метод удаление" или "метод удаления"? :)
|
|
4
12345
14.10.04
✎
11:51
|
(1) Вероятнее всего, такой способ есть. И думаю, что число наборов нужно увеличить, включив заполнение колонки ТЗ.К случайными числами. У кого есть хороший алгоритм генерации СЧ?
|
|
5
Волшебник
14.10.04
✎
11:53
|
|
|
6
Последний Будда
14.10.04
✎
11:56
|
Предлагаю такой вариант конкурса: Удалить все строки ТЗ, значения любых ячеек которой не входят в список значений фильтра.
|
|
7
12345
14.10.04
✎
12:17
|
(6) такая задача на практике не встречаеться, по-крайнем мере такое нарочно не придумаешь, тогда как (0) при непродуманном алгоритме бывает.
|
|
8
Рупор абсурда
14.10.04
✎
12:23
|
(0) Кстати, 12345, слово "mszus", пишется "mszsuz" ...
Слово "пишеться", пишется "пишется" ...
|
|
9
NS
14.10.04
✎
12:42
|
(0)Ты не оптимизировал удаление строк, а оптимизировал условие вхождения строки...
Неужели все такие идиоты, за несколько лет не догадались, а ты самый умный?
|
|