|
Как удалить повторяющиеся значения из колонки в таблице значений | ☑ | ||
---|---|---|---|---|
0
curys
16.11.11
✎
12:40
|
Доброе время суток.
есть 2 колонки позиция и адрес подскажите как удалить повторяющиеся значения из колонки адрес не трогая колонку позиция, причем в колонке адрес удаляется второе значение, а не первое и все последующие элементы смещаются на позицию вверх |
|||
1
izekia
16.11.11
✎
12:41
|
свернуть?
|
|||
2
Starhan
16.11.11
✎
12:43
|
Нельзя так как ТС хочет удалить только значение в одной колонке. Оставив прежнее количество строк.
Я вот только не пойму чаво он спрашивает. Как удалить значение в строке в одной из колонок или ему алгоритм поиска нарисовать. |
|||
3
izekia
16.11.11
✎
12:44
|
(2) выгрузить-свернуть-загрузить
|
|||
4
Starhan
16.11.11
✎
12:47
|
вообщем создаешь массив.
Начинаешь обходить ТЧ (или ТЗ) неважно. Сравниваешь есть ли адресс в твоем массиве. Если нет добавляешь его в массив. Если есть очищаешь колонку с дрессом в строке. (3) Представь табилчку Поз1 Адрес1 Поз2 Адрес1 Поз3 Адрес2 Я телепатировал что в итоге автору нужна во такая табилчка Поз1 Адрес1 Поз2 Пусто Поз3 Адрес2 |
|||
5
Reset
16.11.11
✎
12:48
|
(1) (3) Вторая колонка - адрес. Как ты ее собрался сворачивать? Будет потеряны значения.
|
|||
6
Reset
16.11.11
✎
12:49
|
:) или позиция.
|
|||
7
aka AMIGO
16.11.11
✎
12:49
|
выгрузить во вторую тз
в неё добавить колонку "Кол","Число", заполнить значением 1 свернуть вторую ("Адрес","Кол") перебирать вторую, если Кол>2 найти в первой, удалять со второй наслаждаться |
|||
8
izekia
16.11.11
✎
12:50
|
(4) "причем в колонке адрес удаляется второе значение, а не первое И ВСЕ ПОСЛЕДУЮЩИЕ ЭЛЕМЕНТЫ СМЕЩАЮТСЯ НА ПОЗИЦИЮ ВВЕРХ"
|
|||
9
aka AMIGO
16.11.11
✎
12:50
|
* Кол>2 = Кол>1, извините..
|
|||
10
Reset
16.11.11
✎
12:51
|
Ну то есть это таки свертка, но не методом, а своим алгоритмом
+(5) |
|||
11
Reset
16.11.11
✎
12:51
|
(10) "не методом свернуть()"
|
|||
12
Starhan
16.11.11
✎
12:52
|
(8)
"из колонки адрес не трогая колонку позиция" "а не первое и все последующие элементы смещаются на позицию вверх" Согласен, на лицо - противоречие в вопросе. |
|||
13
Starhan
16.11.11
✎
12:53
|
Или можно расценить как все адресса снизу должны поднятсья на 1 строчку вверх
|
|||
14
aka AMIGO
16.11.11
✎
12:54
|
елкины зеленые.. они и так поднимутся на 1 вверх при удалении строки..
или отсортировать по Адресу.. |
|||
15
izekia
16.11.11
✎
12:56
|
(5) пля, без кода не обойдемся:
времТз = тз.СкопироватьКолонки("Адрес"); времТз.ЗагрузитьКолонку(тз.ВыгрузитьКолонку("Адрес"), "Адрес"); времТз.Свернуть("Адрес"); тз.ЗаполнитьЗначения(Неопределено, "Адрес"); тз.ЗагрузитьКолонку(времТз.ВыгрузитьКолонку("Адрес"), "Адрес"); в последней строчке не совсем уверен, вроде должно все ок быть, в крайнем случае в цикле заполнить |
|||
16
curys
16.11.11
✎
12:56
|
Вот исходная таблица:
1 "v8.1c.ru" 2 "v8.1c.ru" 3 "v8.1c.ru" 4 "v8.1c.ru" 5 "v8.1c.ru" 6 "v8.1c.ru" 7 "v8.1c.ru" 8 "v8.1c.ru" 9 "games.1c.ru" 10 "v8.1c.ru" 11 "v8.1c.ru" 12 "v8.1c.ru" 13 "1c-usoft.ru" 14 "www.1cbit.ru" 15 "www.1ab.ru" 16 "www.gigansk.ru" 17 "www.1c-victory.ru" 18 "job.sarbc.ru" Вот должно получится так: 1 "v8.1c.ru" 2 "games.1c.ru" 3 "1c-usoft.ru" 4 "www.1cbit.ru" 5 "www.1ab.ru" 6 "www.gigansk.ru" 7 "www.1c-victory.ru" 8 "job.sarbc.ru" |
|||
17
izekia
16.11.11
✎
12:58
|
(16) зачем тебе тогда позиция?
предопределенного НомерСтроки вполне хватит |
|||
18
Starhan
16.11.11
✎
12:59
|
Так бы и сказал что позиция - номер строки, и что свернуть неполучается?
|
|||
19
izekia
16.11.11
✎
13:01
|
(16) смотри (15) в общем, только еще хвост почистить не забудь
|
|||
20
Sintez123
16.11.11
✎
13:18
|
ТЗ = Новый ТаблицаЗначений;
ТЗ.Колонки.Добавить("Линк"); ... тут ТЗ заполняется ... ТЗ.Свернуть("Линк"); |
|||
21
izekia
16.11.11
✎
13:42
|
(20) что времТз.ЗагрузитьКолонку(тз.ВыгрузитьКолонку("Адрес"), "Адрес");
не осилил? |
|||
22
curys
16.11.11
✎
13:53
|
Всем спасибо за помощь=), исходя из всех примеров сделал по другому:
вот код: МассивПроверки = Новый Массив; МассивСтрокКУдалению = Новый Массив; Для Каждого СтрокаТаблицы Из ТаблицаПар Цикл Если МассивПроверки.Найти(СтрокаТаблицы.Адрес) <> Неопределено Тогда МассивСтрокКУдалению.Добавить(СтрокаТаблицы); Иначе МассивПроверки.Добавить(СтрокаТаблицы.Адрес); КонецЕсли; КонецЦикла; Для Каждого СтрокаКУдалению Из МассивСтрокКУдалению Цикл ТаблицаПар.Удалить(СтрокаКУдалению); КонецЦикла; НомерД = 0; Для Каждого СтрокаТаблицы Из ТаблицаПар Цикл НомерД = НомерД + 1; СтрокаТаблицы.Позиция = НомерД; КонецЦикла; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |