powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Поиск последовательности в бинарном массиве
25 сообщений из 270, страница 3 из 11
Поиск последовательности в бинарном массиве
    #39586877
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
добавим ещё Алгоритм Бойера — Мура как самый простой для понимания
...
Рейтинг: 0 / 0
Поиск последовательности в бинарном массиве
    #39586887
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan)добавим ещё Алгоритм Бойера — Мура как самый простой для пониманиядык я с этого начал white_niggerА что, алгоритмы группы BM для быстрого поиска уже отменили?
...
Рейтинг: 0 / 0
Поиск последовательности в бинарном массиве
    #39586931
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
white_nigger,

да ссылочка на всякий случай
...
Рейтинг: 0 / 0
Поиск последовательности в бинарном массиве
    #39587037
Bellic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
white_niggerА что, алгоритмы группы BM для быстрого поиска уже отменили?
А фиг его знает - я его не реализую пожалуй!..))
...
Рейтинг: 0 / 0
Поиск последовательности в бинарном массиве
    #39587048
kep-ko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Bellic, у тебя ужо всё есть и работает? токо скорость не устраивает? али как.
...
Рейтинг: 0 / 0
Поиск последовательности в бинарном массиве
    #39587058
Bellic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kep-koBellic, у тебя ужо всё есть и работает? токо скорость не устраивает? али как.я уже писал.. на TByte на реальных данных файла в 9Мбайт прога работает чуть меньше 2-х минут, в принципе - я не спешу ни куда, зато алгоритм прозрачен полностью!
Сейчас реализовал на RawByteString + Pos(), но в начале цикла накуралесил чуток - зацикливается прога, никак не удается сосредоточиться, чтоб исправить алго... а сюда стыдно недоделку выложить!..((
...
Рейтинг: 0 / 0
Поиск последовательности в бинарном массиве
    #39587063
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bellic9Мбайт прога работает чуть меньше 2-х минут
На 9мб должно работать за 0-16 миллисекунд примерно. Т.ч. есть поле для экспериментов :)

P.S. На AnsiString (RawByteString) не может оказаться быстрее, чем при работе с байтами. В лучшем случае, если всё правильно сделать (и компилятор всё правильно сделает своей магией работы с автоматическими типами) - так же по скорости.
...
Рейтинг: 0 / 0
Поиск последовательности в бинарном массиве
    #39587074
Bellic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
YuRock,
авторНа 9мб должно работать за 0-16 миллисекунд примерно. Т.ч. есть поле для экспериментов :)
9 Метров - это Бин-файл, а еще есть второй файл с фразами Поиска и Замены, от куда они читаются и потом ищутся и меняются в первом файле...)
...
Рейтинг: 0 / 0
Поиск последовательности в бинарном массиве
    #39587078
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
19.01.2018 13:52, Bellic пишет:
> а еще есть второй файл с фразами Поиска и Замены, от куда они читаются и потом ищутся и меняются в первом файле...)

если фраза для поиска не одна, имеет смысл наплодить потоков по количеству фраз.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Поиск последовательности в бинарном массиве
    #39587083
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящийесли фраза для поиска не одна, имеет смысл наплодить потоков по количеству фраз.
Если 2-я замена зависит от 1-й, то надо последовательно делать всё равно.

Bellicеще есть второй файл с фразами Поиска и Замены, от куда они читаются
Тогда
ОжидаемоеВремя = КолвоЗамен*( 0 тире 16мс )
...
Рейтинг: 0 / 0
Поиск последовательности в бинарном массиве
    #39587086
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
19.01.2018 14:01, YuRock пишет:
> Если 2-я замена зависит от 1-й, то надо последовательно делать всё равно.

притянуто за уши
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Поиск последовательности в бинарном массиве
    #39587098
Bellic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
YuRock,
автор Если 2-я замена зависит от 1-й, то надо последовательно делать всё равно.
Замены не зависят друг от друга, но надо делать последовательно, ибо позже введу туда вывод ИНфы для юзера и Подтверждение или Пропуск замены.
...
Рейтинг: 0 / 0
Поиск последовательности в бинарном массиве
    #39587103
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
19.01.2018 14:19, Bellic пишет:
> Замены не зависят друг от друга, но надо делать последовательно, ибо позже введу туда вывод ИНфы для юзера и Подтверждение или Пропуск замены.

замены естественно делай последовательно.
после того, как ВСЁ найдёшь.
а вот сам поиск выполняй в разных потоках.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Поиск последовательности в бинарном массиве
    #39587135
kep-ko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Bellicстыдно недоделку выложить!..(([/i]де не дрейфь, мы хоть алгоритм осознаем, японский подучим )), ну и кодоидей подбросим.
...
Рейтинг: 0 / 0
Поиск последовательности в бинарном массиве
    #39587144
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan)добавим ещё Алгоритм Бойера — Мура как самый простой для понимания
Самый простой?.. Да КМП, что выше писали, проще на порядок :)
...
Рейтинг: 0 / 0
Поиск последовательности в бинарном массиве
    #39587274
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BellicА фиг его знает - я его не реализую пожалуй!..))Найди готовый. Или в гугле забанили? :)
...
Рейтинг: 0 / 0
Поиск последовательности в бинарном массиве
    #39587276
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BellicYuRock,
авторНа 9мб должно работать за 0-16 миллисекунд примерно. Т.ч. есть поле для экспериментов :)
9 Метров - это Бин-файл, а еще есть второй файл с фразами Поиска и Замены, от куда они читаются и потом ищутся и меняются в первом файле...)
Рефал что ли изобретаешь?
для поиска всего и сразу используются вариации автоматных алгоритмов, Axo-Карасик например.
...
Рейтинг: 0 / 0
Поиск последовательности в бинарном массиве
    #39587287
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan),

Кстати, согласен
Если искомых строк несколько, то предложенный мной вариант не катит
В таких ситуациях нужно делать хеш от первого символа
В идеале array[Char]
...
Рейтинг: 0 / 0
Поиск последовательности в бинарном массиве
    #39587324
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOFT FOR YOUЕсли искомых строк несколько, то предложенный мной вариант не катит
В таких ситуациях нужно делать хеш от первого символа

А если делать от первых трёх, то будет ещё быстрее :)
...
Рейтинг: 0 / 0
Поиск последовательности в бинарном массиве
    #39587327
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alekcvp,

3 байт или 3 юникодных символов?
В любом случае размер быстрого массива становится большим :) А хеш в привычном смысле будет долгим для каждого символа.

Ну и потом, кто сказал, что искомые строки обязаны состоять из 3+ символа?
Твой вариант такой ситуации не предполагает ))
...
Рейтинг: 0 / 0
Поиск последовательности в бинарном массиве
    #39587372
Няшик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересно, а у автора - включена ли галочка оптимизации??

Вообще. Как мне кажется, проект надо его - полностью пересматривать с точку зрения логики.

Зачем он ищет в файлах ? И что это, за файлы ??? Что - то вроде архива ????

Если что - то вроде архива, то не легче было создать структурированную базу в начале файла, так называемый PE заголовок, который хранить адреса в фала (Смещения чтения) Нужных текстов, и их размер (С так далее) ....


Тогда бы работа с гигантскими файлами занимала считанные секунды, зная к каким данным - в какой области мы обращаемся.
...
Рейтинг: 0 / 0
Поиск последовательности в бинарном массиве
    #39587375
Няшик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, notepad ++ в файле размером 28,5 МБ (29 944 822 байт) ищет слово "ІеРюdx" за 2 секунды буквально. Которое находится в самом конце файла

Вот там алгоритм мощный..
...
Рейтинг: 0 / 0
Поиск последовательности в бинарном массиве
    #39587384
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Няшик,

а ты SQL где-нибудь используешь?
...
Рейтинг: 0 / 0
Поиск последовательности в бинарном массиве
    #39587385
Няшик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чччДНяшик,

а ты SQL где-нибудь используешь?

Доводилась используй MySql из PHP пару десятков раз.


Я кстати, нашёл алгоритм поиска в файле в notepad ++
https://github.com/notepad-plus-plus/notepad-plus-plus/blob/51797bf59e689b11d80998758790f8a4cade68eb/scintilla/src/Document.cxx#L1648

Обычный while и for .... Интересно, а чего так быстро работает? Неужели компилятор c++ такой быстрый xD
...
Рейтинг: 0 / 0
Поиск последовательности в бинарном массиве
    #39587389
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Няшик...Неужели компилятор c++ такой быстрый

Дельфи быстрее всех.
...
Рейтинг: 0 / 0
25 сообщений из 270, страница 3 из 11
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Поиск последовательности в бинарном массиве
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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