Автор Тема: Библиотека для сравнения строк/чисел/1D и 2D массивов  (Прочитано 13634 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Kaster [?]

  • Бритва, Бритва Оккама
  • Глобальный модератор
  • *
  • Сообщений: 4020
  • Репутация: 622
  • Пол: Мужской
  • Мой Аватар, он лучший самый
    • Награды
  • Версия AutoIt: 3.3.14.0
AutoIt: 3.3.4.0
Версия: 1.0

Категория: Кодирование / Шифрование

Описание:
Данная библиотека содержит только 3 (пока) функции, основное предназначение которых - сравнение различного рода объектов. В случае, если объект строка - лучше использовать обычный StringCompare. Но для строки, также, можно подсчитать его MD5-хеш, что на мой взгляд является достаточно полезным временами (скрипты с аутентификацией). Особенно полезным, на мой взгляд, библиотека может оказаться в случае сравнения одно- и дву-мерных массивов. Массивы размерностью выше 2 не обрабатываются (Возможно в будущем).

Принцип сравнения прост:

Объект 1D - берется элемент и в зависимости от его типа ставится префикс. И так для каждого элемента. Затем, все полученные строки конкатенируются и для полученной суммарной строки считается его MD5-хеш. Этот хеш, в дальнейшем, используется для сравнения различных одномерных массивов.

Объект 2D - в этом случае, каждая строка массива рассматривается как отдельный 1D-массив. Для него проделывается операция из предыдущего пункта. Все полученные хеш-суммы, в итоге, конкатенируются и для нее считается итоговая хеш-сумма. В дальнейшем, эта сумма используется для сравнения различных 2D-массивов.

Преимущества - при сравнении массивов нет необходимости сравнивать каждый элемент с каждым при повторных сравнениях или сравнениях нескольких объектов между с обой. Достаточно один раз посчитать хеш-сумму для необходимых массивов и производить сравнения хеш-сумм.

Недостатки:
Главный недостаток - Возможно есть баги или несоответствия. Прошу пользователей протестировать применив всю фантазию :)
Врожденный недостаток - Наличие MD5-коллизий, связанный с использованием MD5. Это унаследованное неудобство и от него никуда не деться. Но, как говорят эксперты, вероятность случайного появления коллизии ничтожна мала. Пока что, все коллизии искуственные.
Код/Пример:
(нажмите для показа/скрытия)

Источник: Форум русского сообщества пользователей AutoIt
Автор(ы): Kaster (kastermight [at] gmail dot com)
« Последнее редактирование: Март 04, 2010, 19:29:09 от CreatoR »
Конференция посвященная AutoIt на jabber.ru - [email protected]
Как попасть на конференцию читаем тут


Русское сообщество AutoIt


Оффлайн Yashied [?]

  • AutoIt MVP
  • Глобальный модератор
  • *
  • Сообщений: 5379
  • Репутация: 2695
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.x.x
Отличная библиотека. Написана грамотно, описания присутствуют. Пока не разбирался, но выглядит шикарно.

+1


Думай, прежде чем говорить.

Оффлайн mr.Gbabak [?]

  • Новичок
  • *
  • Сообщений: 202
  • Репутация: 18
  • Пол: Мужской
    • Награды
Ага, я тоже заморочился...и не нашел!!

Оффлайн madmasles [?]

  • Глобальный модератор
  • *
  • Сообщений: 7790
  • Репутация: 2317
  • Пол: Мужской
  • Награды За модерирование форума
    • Награды
  • Версия AutoIt: 3.3.x.x
Tapok  [?]
Цитировать
где скачать библиотеку "MD5.au3"?
ИМХО, лучше пользоваться функцией
Код: AutoIt [Выделить]

Нашел у себя 2 MD5.au3.


Внимание: Для просмотра прикреплённых файлов необходимо Войти или Зарегистрироваться
« Последнее редактирование: Июнь 14, 2015, 18:53:08 от madmasles »

Русское сообщество AutoIt

Re: Библиотека для сравнения строк/чисел/1D и 2D массивов
« Ответ #3 Отправлен: Июнь 14, 2015, 18:48:07 »

Оффлайн grott [?]

  • Новичок
  • *
  • Сообщений: 3
  • Репутация: 0
    • Награды
  • Версия AutoIt: 3.3.14.0
Много времени потратил на исследование вопроса сравнения 2Д массивов. А тут все уже есть и работает. Огромное спасибо авторам!!!

Русское сообщество AutoIt

Re: Библиотека для сравнения строк/чисел/1D и 2D массивов
« Ответ #4 Отправлен: Октябрь 24, 2017, 15:12:03 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
82 Ответов
87784 Просмотров
Последний ответ Июль 04, 2018, 14:08:25
от alex33
99 Ответов
124815 Просмотров
Последний ответ Сентябрь 16, 2016, 14:00:51
от koros
11 Ответов
8161 Просмотров
Последний ответ Май 18, 2011, 09:34:57
от RUVATA
8 Ответов
4044 Просмотров
Последний ответ Март 05, 2014, 17:47:10
от ---Zak---
3 Ответов
1701 Просмотров
Последний ответ Май 28, 2014, 00:35:17
от zabu
8 Ответов
1811 Просмотров
Последний ответ Январь 23, 2015, 00:02:47
от InnI
9 Ответов
2250 Просмотров
Последний ответ Ноябрь 23, 2015, 02:46:34
от CreatoR
3 Ответов
1052 Просмотров
Последний ответ Декабрь 15, 2015, 01:05:43
от Yashied
3 Ответов
1756 Просмотров
Последний ответ Июнь 13, 2016, 15:22:16
от inververs
3 Ответов
725 Просмотров
Последний ответ Март 24, 2017, 15:19:33
от inververs