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

start [/forum/topic.php?fid=58&mobile=1&tid=2037934]: |
0ms |
get settings: |
10ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
178ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
82ms |
get tp. blocked users: |
2ms |
| others: | 239ms |
| total: | 552ms |

| 0 / 0 |
