![]() |
![]() |
|
Классификатор слов | ☑ | ||
---|---|---|---|---|
0
Уникальный ник
22.10.11
✎
20:24
|
Классификатор слов, кодирование текста, уменьшение разрядности, или просто интересный и быстрый алгоритм по переводу строки в число и числа в строку.
может кому пригодится :) http://infostart.ru/public/95249/ |
|||
1
IamAlexy
22.10.11
✎
20:33
|
нераскрыто главное:
какой в этом всем практический смысл |
|||
2
Уникальный ник
22.10.11
✎
20:35
|
Там есть способы применения
- Использование максимального диапазона допустимых символов внутри установленной длинны кода. - Визуальное кодирование и декодирование текста. - Получение уникального идентификатора приемлемой длинны по нескольким элементам имеющим числовой код. - Изменяя строку Алфавит2 (набор и последовательность символов), можно установить уникальную кодировку. - Поместить строку в реквизит числового типа - Генерировать строковые пароли - Использовать как классификатор всех слов - ... |
|||
3
GROOVY
22.10.11
✎
20:38
|
Нахрена так и не понял...
|
|||
4
IamAlexy
22.10.11
✎
20:42
|
(2) не понятен практический смысл всех этих пунктов..
поипать мозги можно чисто ради "поипать мозги" а можно например ради получения какого то осмысленного практического результата в чем практический результат данного механизма? |
|||
5
Уникальный ник
22.10.11
✎
20:55
|
(4) Лично мне понадобился для создания обмена между базами, в которых нельзя было изменять конфигурации. Брался номер документа "договор", соединялся с номерами контрагентов по этому договору и записывался в качестве кода основного договора в базу бух 7.7
т.е. в одной базе договор заключается с несколькими контрагентами (это документ), в другой базе (бух 7.7) на каждый договор с каждым контрагентом создан новый элемент справочника. берем код контрагента 999 999 и номер договора 999 999 и генерируем их общий идентификатор и записываем в код основного договора 48AшяC |
|||
6
Fragster
гуру
22.10.11
✎
20:55
|
автор что, открыл преобразование систем счисления?
|
|||
7
vde69
22.10.11
✎
20:59
|
(0) почитай что такое ХЕШ и поищи сколько его есть готовых реализаций :)
|
|||
8
Уникальный ник
22.10.11
✎
21:01
|
(6) предлагается готовый не большой и быстрый кусок кода на 1с , кому понадобится найдет и не будет задавать глупых вопросов типа "Нахрена ..."
|
|||
9
GROOVY
22.10.11
✎
21:10
|
Вот еще проще и быстрее:
////////////////////////////////////////////////////////////////////// //СтрокаХэш - исходный текст //hash- начальное значение hash // М - множитель (влияет накачество хэш и производительность) // TABLE_SIZE - размер получаемого ключа, как Максимальная величина + 1 Функция Хэш(СтрокаХэш, hash=0, M = 31, TABLE_SIZE = 18446744073709551616) //TABLE_SIZE = 18446744073709551615; 64 бита //M = 31; Умножитель ДлинаСтроки = СтрДлина(СтрокаХэш); Для к=1 по ДлинаСтроки цикл hash = M * hash + КодСимвола(Сред(СтрокаХэш,к,1)); конеццикла; возврат hash%TABLE_SIZE; КонецФункции // Для ускорения работы с большими текстами их надо передавать блоками // Данная функция разбивает исходный текст (Параметр "Строка") на блоки // длиной ДлинаБлока и вычислет хэш блоками возвращая результат для всего текста. Функция ХэшБлоками(Строка, ДлинаБлока = 64, hash = 0, M = 31, TABLE_SIZE = 18446744073709551616) НачПозиция = 1; ДлинаСтроки = СтрДлина(Строка); Пока НачПозиция<=ДлинаСтроки цикл hash = Хэш(Сред(Строка, НачПозиция, ДлинаБлока), hash, M, TABLE_SIZE); НачПозиция = НачПозиция + ДлинаБлока; КонецЦикла; возврат hash; КонецФункции Взято от сюда: infostart.ru/public/70030/ Кому понадобится не будет изобретать велосипед и гордиться этим. |
|||
10
Уникальный ник
22.10.11
✎
21:19
|
(9) вы протестировали? может вы разработали ? почему заявляете что быстрее, вы уверены что это тоже самое вообще :)) ?
|
|||
11
Уникальный ник
22.10.11
✎
21:21
|
(9) и уже не возникает вопрос "Нахрена..." ?
|
|||
12
Уникальный ник
23.10.11
✎
06:32
|
(7) куча реализаций, но вот чтобы по значению hash можно было восстановить весь первоначальный текст и что бы hash был только числовым, и все это написано на 1с что-то я не нашел.
|
|||
13
DJ Anthon
23.10.11
✎
06:57
|
когда будешь использовать этот код, не забудь мушку спилить..
|
|||
14
DJ Anthon
23.10.11
✎
07:01
|
для начала запомни, что существительного "длинна" не существует, только краткое прилагательное.
|
|||
15
hhhh
23.10.11
✎
10:31
|
(0) написано: "публикация не активна".
|
|||
16
Уникальный ник
23.10.11
✎
10:44
|
(15) исправил ошибку в слове, на модерации пока
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |