|
|
|
Быстрый парсер текста
|
|||
|---|---|---|---|
|
#18+
Ко мне на сервер приходят текстовые сообщения по сети. И мне по определенному шаблону нужно вытаскивать ФИО из них. Какие способы посоветуете? Пример сообщения: Покупатель совершил платеж 1000 р. ФИО = "Петров Иван Фёдорович" Произошел возврат покупки id#1000231 ФИО = "Петров Иван Фёдорович" дата возврата = 21.09.2020 Можно через регулярные выражения, можно через pos Вот если таких сообщений миллионы? Если важна скорость обработки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2020, 16:53 |
|
||
|
Быстрый парсер текста
|
|||
|---|---|---|---|
|
#18+
Сейчас придет Оптимизатор. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2020, 16:55 |
|
||
|
Быстрый парсер текста
|
|||
|---|---|---|---|
|
#18+
09.10.2020 16:53, cptngrb пишет: > > Какие способы посоветуете? возьми стандартный TParser за основу и допили напильником. он однопроходный и способен работать с потоками и буферами. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2020, 17:10 |
|
||
|
Быстрый парсер текста
|
|||
|---|---|---|---|
|
#18+
cptngrb И мне по определенному шаблону нужно вытаскивать ФИО из них. Про шаблон уже что-то известно или он еще не определен? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2020, 17:14 |
|
||
|
Быстрый парсер текста
|
|||
|---|---|---|---|
|
#18+
wadman, пока нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2020, 17:20 |
|
||
|
Быстрый парсер текста
|
|||
|---|---|---|---|
|
#18+
известно, что длина сообщения не больше 300 символов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2020, 17:24 |
|
||
|
Быстрый парсер текста
|
|||
|---|---|---|---|
|
#18+
09.10.2020 17:24, cptngrb пишет: > > известно, что длина сообщения не больше 300 символов тогда чо ты паришься?! Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2020, 17:27 |
|
||
|
Быстрый парсер текста
|
|||
|---|---|---|---|
|
#18+
Мимопроходящий, еще раз, как быстрее это делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2020, 17:46 |
|
||
|
Быстрый парсер текста
|
|||
|---|---|---|---|
|
#18+
09.10.2020 17:46, cptngrb пишет: > еще раз, как быстрее это делать? чо ты ЗАРАНЕЕ паришься?! на таких объёмах практически пофиг. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2020, 17:47 |
|
||
|
Быстрый парсер текста
|
|||
|---|---|---|---|
|
#18+
cptngrbкак быстрее это делать? С твоими объёмами - как угодно, pos сойдёт. Репу будешь чесать если сервер упрётся в загрузку CPU. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2020, 17:48 |
|
||
|
Быстрый парсер текста
|
|||
|---|---|---|---|
|
#18+
1. KISS 2. Premature optimization is the root of all evil. Определись с данными, возьми Pos, проверь скорость, сравни с ожидаемой нагрузкой... А потом делай выводы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2020, 17:52 |
|
||
|
Быстрый парсер текста
|
|||
|---|---|---|---|
|
#18+
cptngrb wadman, пока нет То есть нужно найти решение задачи, условий для которой нет. Эпик. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2020, 22:00 |
|
||
|
Быстрый парсер текста
|
|||
|---|---|---|---|
|
#18+
wadman, Я спросил про подход. Не знал, что это так сложно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2020, 11:08 |
|
||
|
Быстрый парсер текста
|
|||
|---|---|---|---|
|
#18+
cptngrb, Из Delphi-библиотек самая быстрая это CachedTexts (сейчас входит в состав Tiny.Library) Но в целом согласен. Действительно ли нужна производительность Я работал с большими объёмами, там нужна была производительность. Нужна ли в твоём случае - вопрос ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2020, 11:23 |
|
||
|
Быстрый парсер текста
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOU, мне нужна. Конкретные данные я показать не могу, но смысл понятен. Есть сообщение. В нем в определенном порядке идет ФИО, дата/время и стоимость. Их мне надо вытянуть. В потоках всякие inttostr не очень хорошо работают. При парсинге у меня куча строк, которые потом нужно переводить в число, дату. StrToDate тоже тяжелая функция, EncodeDate уже лучше ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2020, 13:52 |
|
||
|
Быстрый парсер текста
|
|||
|---|---|---|---|
|
#18+
cptngrbStrToDate тоже тяжелая функция Эй, в первом сообщении ты на полном серьёзе рассматривал регэкспы, а тут вдруг StrToDate, оказывается, "тяжёлая"... Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2020, 13:56 |
|
||
|
Быстрый парсер текста
|
|||
|---|---|---|---|
|
#18+
cptngrb В потоках всякие inttostr не очень хорошо работают. Ну так возьми ММ с поддержкой многопоточности. FastMM5, например. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2020, 13:58 |
|
||
|
Быстрый парсер текста
|
|||
|---|---|---|---|
|
#18+
cptngrb, А там как раз идея в том, чтобы отказаться от менеджера памяти Ты скармливаешь кусок данных, они кешируется, и дальше работаешь со строками, ссылаясь на имеющийся буфер Как раз там делается StrToInt, StrToDate и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2020, 15:05 |
|
||
|
Быстрый парсер текста
|
|||
|---|---|---|---|
|
#18+
cptngrb Можно через регулярные выражения DiRegExp довольно быстрая библиотека ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2020, 11:57 |
|
||
|
Быстрый парсер текста
|
|||
|---|---|---|---|
|
#18+
X11, TPerlRegExp (на базе нее TRegExp) тоже быстрая, как показали тесты, времени уходит больше не на сам парсинг, а на преобразование строк к конкретным типам данных (числа, даты). А так как сообщение - это массив байт, то мне оказалось намного быстрее работать непосредственно с байтами, чем сообщение приводить к строке -> поиск в строке -> перевод подстрок к типам данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2020, 12:01 |
|
||
|
Быстрый парсер текста
|
|||
|---|---|---|---|
|
#18+
cptngrb, если уж совсем позарез, то надо лексер генерить - тынц там как раз регулярки, лексергенератор закомпилит их в табличку переходов, и работать это будет железно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2020, 07:46 |
|
||
|
Быстрый парсер текста
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan), И меня здесь упрекают в том, что слишком усложняю решение ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2020, 07:52 |
|
||
|
Быстрый парсер текста
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOU, оно как бы не сложно при определённом опыте, вопрос надо ли "будить дракона" многие же жалуются, что знания из универа им в жизни не понадобились, хороший повод вспомнить :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2020, 07:59 |
|
||
|
Быстрый парсер текста
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan), Я конечно не уверен на 100%, но мне кажется решение на основе CachedTexts будет быстрее лексера, не смотря на то, что лексер в теории может быть очень быстр ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2020, 08:02 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=40007147&tid=2037934]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
37ms |
get topic data: |
14ms |
get forum data: |
4ms |
get page messages: |
91ms |
get tp. blocked users: |
2ms |
| others: | 216ms |
| total: | 402ms |

| 0 / 0 |
