powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Индекс "не очень длинных текстов"
15 сообщений из 15, страница 1 из 1
Индекс "не очень длинных текстов"
    #32666859
Иван FXS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Довольно много об этом говорено в последние дни ... хотелось бы "собрать до кучи" мысли.

Нужен "инструмент" (модуль в mdb? отдельная mdb-шка, "подключаемая" через OpenDatabase?) для ИНДЕКСАЦИИ литералов "ограниченной длины". Какое решение является наиболее эффективным?

"Индексация" означает наличие ДВУХ функционалов:
1-й: i = String_to_Long(s)
2-й: s = Long_to_String(i)
- где s - строка произвольной длины - "не слишком большой", но заведомо может оказаться больше 255 символов,
i - число (Long) взаимно-однозначно соответствующее строке s.

То есть - прежде всего (String_to_Long), - мы РАБОТАЕМ с некоторым "расширяющимся" набором (массивом) строк и каждой встретившейся нам строке s мы должны присвоить значение i: либо НОВОЕ значение i, если данная строка встретилась нам впервые, либо - тоже самое значение i, которое мы уже раньше присвоили этой строке при первой ее встрече. (Понятно, что в системе должен храниться некий "словарь" строк …)

Long_to_String – это, естественно, обратный функционал, "восстанавливающий" строку s по ее "коду" i.

Наконец, о какой "эффективности" речь:
1. быстрота "прямого" функционала String_to_Long
2. быстрота "обратного" функционала Long_to_String
3. минимизация "размера хранилища"

При этом считается допустимой "двухфазная" работа системы. Имеется в виду следующее: когда на вход системы поступает некий массив строк, – она должна их быстро обработать ("оцифровать"), а после этого может – не спеша, в "фоновом режиме" – заниматься ОПТИМИЗАЦИЕЙ своей внутренней структуры – с целью повышения "интегральной" эффективности.

Какие - в этой задаче – возможны идеи, приемы, решения?
...
Рейтинг: 0 / 0
Индекс "не очень длинных текстов"
    #32666900
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в зависимости от специфики задачи (простота кода, быстродействие, возможность использования сторонних продуктов) будут и разные решения.

если требуется быстродействующее решение без использования сторонних продуктов то это мог бы быть OCX или COM объект написанный к примеру на C++
...
Рейтинг: 0 / 0
Индекс "не очень длинных текстов"
    #32666918
Иван FXS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АлексейКесли требуется быстродействующее решение без использования сторонних продуктов то это мог бы быть OCX или COM объект написанный к примеру на C++
- черезвычайно желательно решение на базе MSAccess (+VBA)! ;-)

Имхо, эффективность заключается в АЛГОРИТМЕ и способе организации ХРАНЕНИЯ словаря ... а вовсе не в языке реализации.
...
Рейтинг: 0 / 0
Индекс "не очень длинных текстов"
    #32667957
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
привет Иван.
для меня (как всегда) не вполне понятно о чем речь идет.
(а начиналось все так понятно - мол четыре символа в лонг хочу...
я тогда подумал, чито ты base64 изобрАзить собрался - видать обознался...)

:))

Если сегодня твоя тема - "хеш функции", то , имхо, с этим в "программирование" - за алгоритмами, или в руководство по capicom за описанием вызовов наличных в системе...

(с выражением лица)
...
Рейтинг: 0 / 0
Индекс "не очень длинных текстов"
    #32668177
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
раз на аксессе так на аксессе.
только это будет не профессиональный продукт а лишь подтверждение что на аксессе можно сделать все... будет существенно медленнее.

создаешь mdb
делаешь набор внешних функций которые обеспечивают функционал:

создать / удалить именованный массив
найти по номеру, найти номер по имени, добавить в массив, удалить итд

использовать можно как addin или ком - объект.

если поместить в папку где установлен аксесс то можно достаточно удобно обращаться.
...
Рейтинг: 0 / 0
Индекс "не очень длинных текстов"
    #32668181
Иван FXS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VictoshaЕсли сегодня твоя тема - "хеш функции" ...
- хорошо, пусть будут "хеш функции" ... а что, - слово красивое! ;-)

Так как же сделать ЭФФЕКТИВНУЮ реализацию "хеш функции" КОНКРЕТНЫМИ средствами MS Access + VBA (и - для КОНКРЕТНЫХ нужд использования ее в качестве УТИЛИТЫ в аццесных проектах)?

В "хеш функции", насколько я понимаю, ОСНОВНОЕ - это "бинарное дерево", ок?
А индексы аццесса - это ведь и есть бинарные деревья ... так?
То есть, получается, осталось только это по уму организовать ...
...
Рейтинг: 0 / 0
Индекс "не очень длинных текстов"
    #32668193
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сливаешь массив в таблицу, держишь постоянно открытым публичный рекордсет (данные в локальной для mdb таблице) и ищешь число методом seek по текстовому индексу
...
Рейтинг: 0 / 0
Индекс "не очень длинных текстов"
    #32668283
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВ "хеш функции", насколько я понимаю, ОСНОВНОЕ - это "бинарное дерево", ок?
вот ок совсем тут рядом не стоял.
я то про бузину, - растет в огороде.


(с выражением лица)
...
Рейтинг: 0 / 0
Индекс "не очень длинных текстов"
    #32668291
Иван FXS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АлексейК ищешь число ... по текстовому индексу
- это как, сорри?
...
Рейтинг: 0 / 0
Индекс "не очень длинных текстов"
    #32668305
Иван FXS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victoshaя то про бузину, - растет в огороде.
- бузина-то, знамо, - в огороде:
Код: plaintext
1.
2.
3.
Хэш-функция - функция, осуществляющая хэширование массива 
данных посредством отображения значений из (очень) большого множества 
значений в (существенно) меньшее множество-значений. 
( http://encycl.yandex.ru/cgi-bin/art.pl?art=gl_natural/10/106_57.HTM&encpage=gl_natural )

А мне нужно ВЗАИМООДНОЗНАЧНОЕ соответствие набора строк и набора Long-ов ...
...
Рейтинг: 0 / 0
Индекс "не очень длинных текстов"
    #32668932
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
создаешь табличку в которой два поля текстовое и нумератор записей от 1 и далее.

первичным ключем делаешь первое, текстовое - все равно текст должен быть уникальным для твоей задачи

в коде создаешь публичный уровня общего модуля объект рекордсет.

при запуске любой функции вставляешь проверку что рекордсет открыт и заполнен

поиск номера в рекордсете быстрее всего сделать используя метод seek объекта dao.recordset

rst.seek
...
Рейтинг: 0 / 0
Индекс "не очень длинных текстов"
    #32669001
Иван FXS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Славься, славься на века! ;-)
Осталось понять, что делать с:
Иван FXSs - строка произвольной длины - "не слишком большой", но заведомо может оказаться больше 255 символов
...
Рейтинг: 0 / 0
Индекс "не очень длинных текстов"
    #32669167
N_A
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не понял вообще о чем беседа, но может присоединенный файл чем-то поможет.
...
Рейтинг: 0 / 0
Индекс "не очень длинных текстов"
    #32669352
Иван FXS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
N_A может присоединенный файл чем-то поможет.
- у-упс! Хотите сказать, что эти хэши (которые генерит эта формочка используя этот объект) - они ВЗАИМООДНОЗНАЧНО соответствуют исходным строкам?
То есть - типа - вероятность того, что у двух РАЗНЫХ строк окажется одинаковое значения хэша очень-очень-очень мала?

Но при этом восстановить по хэшу "породившую" его строку - типа - нельзя, я правильно понимаю??
...
Рейтинг: 0 / 0
Индекс "не очень длинных текстов"
    #32669406
N_A
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторТо есть - типа - вероятность того, что у двух РАЗНЫХ строк окажется одинаковое значения хэша очень-очень-очень мала?

Но при этом восстановить по хэшу "породившую" его строку - типа - нельзя, я правильно понимаю??Да
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Индекс "не очень длинных текстов"
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]