Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Поиск в тексте / 14 сообщений из 14, страница 1 из 1
20.12.2017, 15:04
    #39572782
Areostar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск в тексте
Вопрос как организовать поиск по тексту.

предположим текст в документе разделён на строки

Я могу искать подстраку в строке. Но что если совпаденине затрагивает несколько строк???

Должны быть готовые алгоритмы!
...
Рейтинг: 0 / 0
20.12.2017, 16:10
    #39572877
Areostar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск в тексте
регулярные вырожения это поняиютно. но мне надо найти в каких строках найдено совпадение. Если совпадений несколько то наити все.

то есть как я понял измерить длину искомого текста(скажем 20 символов) берём первые 20 символов текста документа и сравниваем. если нет то сдвигаем на символ и сравниваем опять. я вправельном направлении думаю или нет?
...
Рейтинг: 0 / 0
20.12.2017, 16:18
    #39572885
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск в тексте
AreostarНо что если совпаденине затрагивает несколько строк???
Если в подстроке есть символ(ы) перевода строки - то совпадение ОБЯЗАНО "затрагивать несколько строк". А если таковых нет - то совпадение НЕ МОЖЕТ "затрагивать несколько строк".
...
Рейтинг: 0 / 0
20.12.2017, 16:24
    #39572892
Areostar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск в тексте
Akina,

дельное замечание. данный символ надобудет игнорить.

на счёт перебора направление правельное или как то по другому можно?
...
Рейтинг: 0 / 0
20.12.2017, 17:59
    #39572981
Руслан Дамирович
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск в тексте
AreostarВопрос как организовать поиск по тексту.
Должны быть готовые алгоритмы!
Да полно. Ты на чем кодить собрался, малыш?
https://www.regexbuddy.com/programming.html
...
Рейтинг: 0 / 0
20.12.2017, 19:20
    #39573009
ptr128
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск в тексте
Areostarберём первые 20 символов текста документа и сравниваем. если нет то сдвигаем на символ и сравниваем опять. я вправельном направлении думаю или нет?
Не эффективно. Лучше, берем текст и ищем в нем первый символ из искомой строки. Если он найден, тогда уже со следующей позиции сравниваем строки. Если строки совпали, переходим к поиску начиная со следующего символа после конца строки. Если не совпали - то к поиску, начиная со следующего символа после найденного в первом поиске.
...
Рейтинг: 0 / 0
20.12.2017, 19:34
    #39573017
Areostar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск в тексте
ptr128,

в этом есть смысл! :) буду думать дальше
...
Рейтинг: 0 / 0
20.12.2017, 19:50
    #39573022
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск в тексте
Размер текста?
...
Рейтинг: 0 / 0
20.12.2017, 21:15
    #39573074
Areostar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск в тексте
Akina,

Ну в среднем несколько сот строк
...
Рейтинг: 0 / 0
20.12.2017, 21:27
    #39573078
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск в тексте
Areostar , тогда тупо загрузить всё в память, вычистить переводы строк из текста и из шаблона, и использовать штатную функцию поиска подстроки в строке.
...
Рейтинг: 0 / 0
21.12.2017, 11:23
    #39573363
Руслан Дамирович
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск в тексте
Akinaиспользовать штатную функцию поиска подстроки в строке
AreostarЕсли совпадений несколько то наити все
В цикле
...
Рейтинг: 0 / 0
21.12.2017, 22:32
    #39574078
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск в тексте
Areostarрегулярные вырожения это поняиютно. но мне надо найти в каких строках найдено совпадение. Если совпадений несколько то наити все.

то есть как я понял измерить длину искомого текста(скажем 20 символов) берём первые 20 символов текста документа и сравниваем. если нет то сдвигаем на символ и сравниваем опять. я вправельном направлении думаю или нет?
В данной сферической постановке - тебе вполне подойдут регулярки. Для них - переводы строк
это просто какой-то класс символов разделителей наподобие пробелов и табов.

Что там по поводу длины - непонятно. Если ты взял API регулярок в Java/.Net то результатом
поиска будет набор объектов-групп (Groups) или коллекция групп. И ты ходишь по ним в цикле
и делаешь какие-то проверки дальше.

Если задача слишком для тебя сложна - то разбей ее на этапы. Например в первом
из набора строк разделенных переводами строк - делаешь одну большую строку
и т.д.
...
Рейтинг: 0 / 0
22.12.2017, 09:11
    #39574196
Areostar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск в тексте
Руслан Дамирович,

уже упоминал возможность того что часть искомой подстроки могут быть в одной строке, несколько в другой
...
Рейтинг: 0 / 0
22.12.2017, 09:20
    #39574206
Areostar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск в тексте
mayton,

думаю реализовать на python. в порядке изучкния этого языка.

для интерфейса рекомендуют Qt+python
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Поиск в тексте / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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