Удаление дублирующих строк в списке. Как такое реализовать?

sof

Client
Регистрация
15.04.2013
Сообщения
831
Благодарностей
184
Баллы
43
Сразу оговорюсь что удаление дублей не подходит!

Суть вот моей проблемы:

У меня есть список (файл) под названием UrlDuble в нем записаны разные ссылки. И есть ссылки которые дублируются по 2 и более раз одни и те же. Мне нужно из этого списка удалить именно такие ссылки.

Пример:
ссылка1
ссылка2
ссылка3
ссылка3
ссылка4
ссылка5
ссылка5
ссылка5
ссылка6

То есть в списке нужно чтобы остались только
ссылка1
ссылка2
ссылка4
ссылка6

Помогите решить задачу. Ломаю голову уже второй день
 

S16er1um

Client
Регистрация
14.04.2016
Сообщения
826
Благодарностей
240
Баллы
43
эмм... а с этой функцией что не так???
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 880
Баллы
113
Дубли для того и нужны, чтобы удалить строки, которые повторяются 2 и более раза. При этом 1 совпадение останется.
 

sof

Client
Регистрация
15.04.2013
Сообщения
831
Благодарностей
184
Баллы
43

sof

Client
Регистрация
15.04.2013
Сообщения
831
Благодарностей
184
Баллы
43
Дубли для того и нужны, чтобы удалить строки, которые повторяются 2 и более раза. При этом 1 совпадение останется.
в том то и дело что мне совпадения не нужны тех ссылок которые повторяются (их нужно удалить полностью не оставляя даже 1 совпадение)
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 880
Баллы
113
Не обратил внимания, что нужно полностью удалить то, что повторяется.
Таким образом нужно с каждой строкой пробегать по всему списку (если он не сильно большой, то это не проблема).
Т.е. логика такая - берём одну строку по счетчику, проверяем все строки до конца списка. Если строка встречается еще хоть раз - операции над списком - удалить строки содержащие текст.
Как то так.
 

S16er1um

Client
Регистрация
14.04.2016
Сообщения
826
Благодарностей
240
Баллы
43
Согласен с предыдущим оратором, но этот процесс к сожалению будет очень долгим, если у тебя куча ссылок
 

AShaggy

Активный пользователь
Регистрация
25.11.2014
Сообщения
335
Благодарностей
143
Баллы
43
Можно через C# относительно быстро
C#:
var list = project.Lists["Список 1"];
var buffer = (from q in list
group q by q into l
where l.Count() == 1
select l.Key).ToList();
list.Clear();
list.AddRange(buffer);
 

sof

Client
Регистрация
15.04.2013
Сообщения
831
Благодарностей
184
Баллы
43
Можно через C# относительно быстро
C#:
var list = project.Lists["Список 1"];
var buffer = (from q in list
group q by q into l
where l.Count() == 1
select l.Key).ToList();
list.Clear();
list.AddRange(buffer);
Большое тебе спасибо. Ты не представляешь сколько мне нервных клеток сэкономил. Я уже думал что это с мира фантастики
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
а с милиардом код справится ???
думаю не вывезет
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 880
Баллы
113

doc

Client
Регистрация
30.03.2012
Сообщения
8 607
Благодарностей
4 599
Баллы
113
А какой вывезет? )
ну, судя по всему, какой-то его супер пупер реализация. В прошлый раз, помню, разговор подходил к другой супер пупер реализации разгадывания тысяч гуглокапч в секунду на гетпост)
 

sof

Client
Регистрация
15.04.2013
Сообщения
831
Благодарностей
184
Баллы
43
Можно через C# относительно быстро
C#:
var list = project.Lists["Список 1"];
var buffer = (from q in list
group q by q into l
where l.Count() == 1
select l.Key).ToList();
list.Clear();
list.AddRange(buffer);
Если не сложно подскажите как в этом коде сделать так что если файл пустой чтобы он не удалялся.
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 607
Благодарностей
4 599
Баллы
113
Если не сложно подскажите как в этом коде сделать так что если файл пустой чтобы он не удалялся.
это тебе нужно указывать в настройках списка, а не сниппете
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113

doc

Client
Регистрация
30.03.2012
Сообщения
8 607
Благодарностей
4 599
Баллы
113
Да сама зенка столько не вытянит, сдохнет при запуске, а я выкладывал батник который дубли удаляет в секунды в милионом файле
ты говорил о миллиарде строк, не?)
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
Это тоже не миллиард )
ну давайте прикапываться, обработайте мне хотябы 100 лямов в зенке нормально
ну и заодно может и я узнаю метод что бы она смогла обработать большучий файл
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 607
Благодарностей
4 599
Баллы
113
ну давайте прикапываться, обработайте мне хотябы 100 лямов в зенке нормально
ну и заодно может и я узнаю метод что бы она смогла обработать большучий файл
причем здесь зенка, если ты сам завёл речь о лярде строк?
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113

doc

Client
Регистрация
30.03.2012
Сообщения
8 607
Благодарностей
4 599
Баллы
113

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113

doc

Client
Регистрация
30.03.2012
Сообщения
8 607
Благодарностей
4 599
Баллы
113
ну думаю со временем с этим сомнением согласишься что можно обработать такой файл не раскладывая его на множество файлов
еще бы согласиться со временем с обработкой батником ярда строк на дубли за секунду)
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
окей давай ты обработаешь милион строк в зенке для начала а я батником
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 607
Благодарностей
4 599
Баллы
113
окей давай ты обработаешь милион строк в зенке для начала а я батником
давай ты тогда просто не будешь раскидываться такими словами, если для подтверждения их я еще чето сделать должен)
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
неее милион это мало, зенка вытянит такой файл, ей надо пихнуть выше как она NET использует и выше крыше не попрёт и просто помрёт
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
давай ты тогда просто не будешь раскидываться такими словами, если для подтверждения их я еще чето сделать должен)
а давай я тебе ещё раз повторюсь что такой батник давно есть на форуме, прежде чем писать что человенк раскидывается ты сам подумай что пишешь и в чём сомневаешься

P.S. Конечно зачем делать если можно получить то в жизни что не видел а просто трещать
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 607
Благодарностей
4 599
Баллы
113
а давай я тебе ещё раз повторюсь что такой батник давно есть на форуме, прежде чем писать что человенк раскидывается ты сам подумай что пишешь и в чём сомневаешься

P.S. Конечно зачем делать если можно получить то в жизни что не видел а просто трещать
закончим на этом разговор) подолблюсь головой об стену в след. раз)
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
закончим на этом разговор) подолблюсь головой об стену в след. раз)
да мне без разницы, просто я много раз заметил что ты не уступаешь ни в одном предложении вот и подумал что сможешь такой видос записать, а ты оказывается просто съехал )
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)