nesco писал(а):
А если их несколькоМне видится как последовательная выдача данных; найденная строка( onSearch)- вхождение(onPosition)
ps:попутно проверял поиск слова в десяти файлах, общим объёмом 42 Мб - результат 0.3 секунды.
Ответов: 1304
Рейтинг: 405
|
|||
nesco писал(а): А если их несколькоМне видится как последовательная выдача данных; найденная строка( onSearch)- вхождение(onPosition) ps:попутно проверял поиск слова в десяти файлах, общим объёмом 42 Мб - результат 0.3 секунды. |
|||
карма: 3 |
|
Разработчик
Ответов: 26153
Рейтинг: 2127
|
|||
MAV писал(а): результат 0.3 секундыЭто что -- плохо ------------ Дoбавленo в 00.17: MAV писал(а): Мне видится как последовательная выдача данных; найденная строка( onSearch)- вхождение(onPosition)А не проще ее еще раз пропарсить, если надо, чтобы не засорять компонент лишними действиями. Не всем же это надо |
|||
карма: 22 |
|
Ответов: 1304
Рейтинг: 405
|
|||
nesco писал(а): Это что -- плохоОчень даже хорошо nesco писал(а): А не проще ее еще раз пропарситьА разве у меня есть выбор nesco писал(а): чтобы не засорять компонент лишними действиями.Понятно что пострадает быстродействие элемента, но на сколько, на 5% или 50%? nesco писал(а): Не всем же это надоК примеру логов в 200 Мб я не видел, а вот книг по 28000 шт. с одного диска видел. |
|||
карма: 3 |
|
Разработчик
Ответов: 26153
Рейтинг: 2127
|
|||
MAV, я еще раз спрошу -- а если вхождений текста в строке не одно, а несколько, как ты себе видишь выдачу их позиций
MAV писал(а): К примеру логов в 200 Мб я не виделГы. А люди тут 400 Мб пытались парсить. |
|||
карма: 22 |
|
Ответов: 4641
Рейтинг: 334
|
|||
nesco,
а можно что бы текст поиска по маске можно было задавать? или замедлит круто? |
|||
карма: 1 |
|
Ответов: 1304
Рейтинг: 405
|
|||
nesco, в данном случяе могу обяснить только на пальцах, или элементах.
|
|||
карма: 3 |
|
Ответов: 4641
Рейтинг: 334
|
|||
MAV, а как эту идею с позицией вхождения в байтах...применить в практике....
практическое применения метода? |
|||
карма: 1 |
|
Разработчик
Ответов: 26153
Рейтинг: 2127
|
|||
Ravilr писал(а): а можно что бы текст поиска по маске можно было задавать? или замедлит круто?Не то слово круто, а очень круто MAV писал(а): в данном случяе могу обяснить только на пальцах, или элементахА что, проще нельзя не в элементах, а в аргументах. Первое предложение было ARG(String, Pos). Вот теперь, то же самое, но для нескольких Pos. Но предупреждаю сразу, что это сильно затормозит поиск, по причине дополнительного распарсивания строки, возможно, неколько раз. Млин, вы же сами пытаетесь затормозить все, а мы увеличиваем скорости компонентов, тогда вопрос -- зачем, когда ваши желания убъют любые положительные начинания Вообще-то, наилуший вариант -- это дополнительное распарсивание на базе FTCG, без всяких переделок компонента, по причине того, что создание MT-потока, в каждом найденном элементе, не кисло сведет на нет все прибавки скорости |
|||
карма: 22 |
|
Ответов: 1304
Рейтинг: 405
|
|||
Ravilr писал(а): а как эту идею с позицией вхождения в байтах...применить в практике....
практическое применения метода? Ravilr, это позволит открыть текст без повторного парсинга найденного документа, зная местоположение строки можно не загружать файл в память, а прочитать необходимое количество строк. nesco писал(а): Млин, вы же сами пытаетесь затормозить все, а мы увеличиваем скорости компонентов, тогда вопрос -- зачем, когда ваши желания убъют любые положительные начинанияnesco, полностью осознал свою вину , лучше быстродействие при поиске в ста файлах, и повторный парсинг в одном где найден необходимый текст. ps:прицепил файл (searchinfile_sha) тремя постами выше |
|||
карма: 3 |
| ||
файлы: 1 | searchinfile_sha.rar [973B] [119] |
Ответов: 4641
Рейтинг: 334
|
|||
MAV, понял. Но как сказал выше nesco, о скорости...думаю этот функционал не надо включать в компонент.
Пусть работает шустро, как есть! ------------ Дoбавленo в 02.00: Или создать еще компонент с приставкой Ex со всеми хотелками |
|||
карма: 1 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
MAV писал(а): nesco, в данном случяе могу обяснить только на пальцах, или элементах.Ravilr писал(а): Или создать еще компонент с приставкой Ex со всеми хотелками Ravilr, хотелок не наблюдаю. 1.На фига при поиске знать позицию вхождения ? Нашел строку с нужным словом и крути её как тебе нужно - узнавай позицию. Да хоть по буквам анализируй. Насколько я понял- тебя интересует позиция строки в байтах в которой найдено слово . 2.Тоже самое с двумя или с сотней слов. Вот чел спрашивал: "А как искать по двум словам". Очень просто - нашел строку по первому и проверь её на второе. Есть? В копилку её. Но тут уже нужно подумать, какое слово пустить первым, а какое вторым. Простой пример из баз данных:
Обычно движок БД обрабатывает запрос "задом на перед" создавая промежуточные файлы. В первом случае в первом промежуточном файле будет 1 500 000 записей Во втором случае в первом промежуточном файле будет всего 3 000 записей Выводы делай сам. ------------ Дoбавленo в 10.43: MAV писал(а): прицепил файл (searchinfile_sha) тремя постами выше Прога выдает для 777 - 35, а на самом деле позиция для 777 = 31 |
|||
карма: 25 |
|
Разработчик
Ответов: 26153
Рейтинг: 2127
|
|||
Довесил МТ-поток (не выкладывал, чисто для тестирования). Быстродействие упало на 50%, но не больше 1,5 сек для 117 Мб на всей схеме. Вот только я не понял одного -- нафиг нужна это позиция текста в строке, когда в распоряжении сама строка
------------ Дoбавленo в 13.33: Tad писал(а): Насколько я понял- тебя интересует позиция строки в байтах в которой найдено словоИ как это предполагается сделать при нашем подходе к перебору строк. Да, кстати, можно сделать еще компонент тупого перебора всех строк в файле, типа EnumStrInFile |
|||
карма: 22 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
nesco писал(а): Да, кстати, можно сделать еще компонент тупого перебора всех строк в файле, типа EnumStrInFileПри подстроке для поиска = " " помоему у этого (уже имеющегося компонента) на выходе будут все строки. Кроме однословных предложений. Украинский совет писал(а): Не ищи в жопе сердце. |
|||
карма: 25 |
|
Разработчик
Ответов: 26153
Рейтинг: 2127
|
|||
Tad писал(а): При подстроке для поиска = " "А типа "/1", нельзя задать, там такого точно не будет |
|||
карма: 22 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
При /1 на выходе строки не будет, а при " " пробеле или точке "." (если текст грамотный) будут все строки по одной от начала и до конца текста.
Ты ж вроде хотел nesco писал(а): сделать еще компонент тупого перебора всех строк в файле------------ Дoбавленo в 14.57: ------------ Дoбавленo в 15.15: |
|||
карма: 25 |
|