Привет уважаемому сообществу скриптоделов и лично создателю Johnny!
Посещаю этот форум я довольно часто и многому здесь научился. Это хороший форум, где действительно помогают новичкам.
Clickermann замечательная программа, выручает меня уже не первый год. Писать скрипты пытаюсь самостоятельно, но не всегда получается то что нужно, поэтому решился наконец пополнить ряды чайников, взывающих к опыту профи, и спросить совета.
Вопрос собственно виден из названия темы. Поиск я конечно юзал, по слову "дубликат", но попалось только -
http://crapware.aidf.org/forum/index.php?topic=1694.msg9614#msg9614 .
С момента того обсуждения прошло почти 2 года, и та тема прочитана более 1460 раз. Очевидно, что тема актуальна и её решение многим облегчит жизнь впоследствии. Я надеюсь, что теперь есть решение такой проблемы как поиск и удаление дубликатов строк в текстовом файле. Приводить пример своего скрипта нет смысла, потому что его пока нет, либо он очень похож на код из той же старой темы
http://crapware.aidf.org/forum/index.php?topic=1694.msg9616#msg9616 , но тот вариант слишком медленный (на поиск последнего элемента массива из моего файла он затачивает в среднем 245 миллисекунд, это сравнение всего 1 строки со всеми 1000 строками; а для удаления всех дубликатов видимо потребуется сравнить 1000 с 1000 строк).
Может кто поделится красивым алгоритмом, или хотя бы даст подсказку (словесную, я постараюсь понять)? Для тестов прилагаю текстовый файл "1000x32.txt" (это не сортированный список из 1000 строк, длиной по 32 символа, содержащий дубликаты), из которого нужно удалить повторяющиеся строки и сохранить остальные в другой текстовый файл. По времени, желательно уложиться в 1 секунду. Мне пока такое не по силам. Другого текста в скрипте не планируется (разве что вместо фходного файла будет буфер обмена), это будет готовый удобный инструмент, который всегда под рукой (как альтернатива программе Text Duplicate Killer).
Если я прошу не слишком многого, и если такое возможно написать на CMSкрипте, то пожалуйста помогите. Заранее спасибо.