Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как быстро сравнить две строки? [D7, XP]


Страницы:   1 2 3 4

Jimmy ©   (2012-11-05 19:36:00) 

Подскажите, как можно быстро сравнить две строки? (Быстрее, чем St1=St2.) Заранее спасибо!


DVM   (2012-11-05 20:57:00) [41]


> Медвежонок Пятачок ©   (05.11.12 20:47) [21]

ты еще скажи, что ты msxml 20 лет назад юзал


DVM   (2012-11-05 20:55:00) [42]


> Jimmy   (05.11.12 20:50) [23]


> Очень бы хотелось пример использования

Да там уж проще некуда все:

var
 Digest: TMD5Digest;
...
 Digest := TMD5.Calculate('твоя строка');


Jimmy   (2012-11-05 20:50:00) [43]

DVM
Очень бы хотелось пример использования, извините, что злоупотребляю Вашим вниманием.


kilkennycat   (2012-11-05 20:50:00) [44]


> Jimmy   (05.11.12 20:35) [17]

не нужна в этом случае контрольная сумма. нужно лишь однозначное правило формирования данных.
например:
1) карты нумеруются сквозной нумерацией.
2) запись набора идет от меньших карт к большим.


Медвежонок Пятачок   (2012-11-05 20:47:00) [45]

А кто здесь говорил про проблемы?
Ты не переживай, лет 20 назадя точно так же бы юзал такие модули.


DVM   (2012-11-05 20:44:00) [46]


> Медвежонок Пятачок ©   (05.11.12 20:41) [19]

Я так и думал, что у тебя нет аргументов. А жопа у тех вместо головы, кто думает, что связкой Win32/Delphi ограничивается круг применения кода на паскале. Использую в Lasarus под Linux без проблем, нету там WinApi. Да, в Linux есть библиотеки для вычисления хэшей, но это лишние зависимости, хидеры все равно переводить.


Медвежонок Пятачок   (2012-11-05 20:41:00) [47]

да какие ту могут быть аргументы?
у тебя поди весь win32 апи на вело-паскале есть.


DVM   (2012-11-05 20:37:00) [48]


> Медвежонок Пятачок ©   (05.11.12 20:32) [16]

да неужели? ну ка аргументируй.


Jimmy   (2012-11-05 20:35:00) [49]

kilkennycat ©
Хорошо, как зная массив байтов получить контрольную сумму?


Медвежонок Пятачок   (2012-11-05 20:32:00) [50]

http://dvmuratov.narod.ru/uMD5.pas

Не, это просто какая-то Жопа.
И это написано в 2011 году.

А сейчас еще и расползется по неокрепшим умам.


Jimmy   (2012-11-05 20:31:00) [51]

>DVM
Большое спасибо, еще бы пример использования... Я не знаю, что такое класс.


kilkennycat   (2012-11-05 20:29:00) [52]

прикольно. это как, карты имеют строковый идентификатор? байта мало?


Jimmy   (2012-11-05 20:26:00) [53]

Создаю хэш таблицы при игре в преферанс на открытых картах. Запоминаю карты всех трех игроков на анализе определенного хода и результат этой "позиции", и если далее встречается такая же ситуация - пользуюсь уже готовым результатом. Проблема в том, что сравнивая имеющиеся карты с теми, что хранят хэш-таблицы уходит много времени. Пока сравниваю строки.


DVM   (2012-11-05 20:24:00) [54]


> Где можно найти код?

http://dvmuratov.narod.ru/uSHA1.pas
http://dvmuratov.narod.ru/uMD5.pas


kilkennycat   (2012-11-05 20:21:00) [55]

во, выясняется, что есть возможность предварительного хэширования. потом высянится, что это поиск по некоему справочнику. и что строка ввода не бывает менее N символов. И в конечном итоге сведется к проблеме тормозов клавиатуре в едите.
Автор, огласите весь список, пожалуйста (с)


Медвежонок Пятачок   (2012-11-05 20:18:00) [56]

в msdn


Jimmy   (2012-11-05 20:16:00) [57]

Можно поподробней про MDS, SHA-1. Где можно найти код?


kilkennycat   (2012-11-05 20:15:00) [58]

вообще вопрос слишком общий, и потому бессмысленный без контекста.


DVM   (2012-11-05 20:14:00) [59]

Для того чтобы вычислить хэш придется пробежаться по всей строке. А это не быстро весьма может быть. А хэшей полно разных MD5 SHA-1 и т.д. На крайний случай банальный CheckSum, но он много коллизий даст - одних и тех же значений для разных строк.


Jimmy   (2012-11-05 20:10:00) [60]

Тогда такой вопрос: как можно быстро по строке однозначно определить какой-нибудь ее код в виде числа? Кажется, это называется, хэш-суммой. Хэш-суммы я могу определить заранее, когда дело дойдет до сравнения они уже будут известны.


Страницы:   1 2 3 4

Наверх

Титульная страница Поиск, карта сайта Написать письмо