Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
02.02.2022, 15:04
|
|||
---|---|---|---|
Замена в строке по словарю |
|||
#18+
Допустим у нас есть ассоциативный массив std::map<std::string, std::string> который определяет замены, которые нужно провести в строке. Неужели не существует готового модуля? Посмотрел в Boost.StringAlgo вроде ничего не нашёл. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
02.02.2022, 15:08
|
|||
---|---|---|---|
|
|||
Замена в строке по словарю |
|||
#18+
Готовый модуль для одного простейшего цикла? Нынешние программисты совсем обленились... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
|
02.02.2022, 15:12
|
|||
---|---|---|---|
Замена в строке по словарю |
|||
#18+
Dimitry Sibiryakov Готовый модуль для одного простейшего цикла? Нынешние программисты совсем обленились... Так в Boost.StringAlgo тоже не сказать что бы сложные алгоритмы. Зачем нужна эта библиотека? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
02.02.2022, 15:18
|
|||
---|---|---|---|
Замена в строке по словарю |
|||
#18+
Dimitry Sibiryakov Готовый модуль для одного простейшего цикла? Нынешние программисты совсем обленились... На самом деле тут не все так просто с циклом: 1. Надо словарь отсортировать от длинных строк к коротким, т.к. короткая может сократиться, а потом длинная не совпадет, т.е. компаратор надо свой. 2. Одного цикла мало, т.к. если в цикле произошло сокращение, то надо еще один цикл, вдруг в результате сокращения сформировалась другая строка из словаря. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
02.02.2022, 15:32
|
|||
---|---|---|---|
|
|||
Замена в строке по словарю |
|||
#18+
Это проблемы составляющего словарь замен и список правил замены. Потому-то и нет готового модуля, что у каждого требования свои. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
|
02.02.2022, 18:02
|
|||
---|---|---|---|
Замена в строке по словарю |
|||
#18+
Тут важно в каком порядке заменять. Я как-то раз по молодости делал из строки XML строку .... Вобщем надо было амперсанд заменить на & ну и другие кавычки и знаки больше-меньше. Можете себе представить что будет после Код: plaintext 1.
и еще раз. Короче Марковские алгоритмы отдыхали. Я переполнил память :) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
02.02.2022, 19:25
|
|||
---|---|---|---|
Замена в строке по словарю |
|||
#18+
Dima T 2. Одного цикла мало, т.к. если в цикле произошло сокращение, то надо еще один цикл, вдруг в результате сокращения сформировалась другая строка из словаря. Вот это самый интересный момент. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
02.02.2022, 19:35
|
|||
---|---|---|---|
|
|||
Замена в строке по словарю |
|||
#18+
mayton, боюсь спросить - а что за самый интересный момент? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
02.02.2022, 19:39
|
|||
---|---|---|---|
Замена в строке по словарю |
|||
#18+
Гарантии того что алгоритм когда-то остановится. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
02.02.2022, 19:53
|
|||
---|---|---|---|
Замена в строке по словарю |
|||
#18+
mayton Гарантии того что алгоритм когда-то остановится. В обычном языке имеет смысл только сокращение, поэтому исходная подстрока должна быть больше замены. В таком случае гарантированно остановится. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
02.02.2022, 20:05
|
|||
---|---|---|---|
Замена в строке по словарю |
|||
#18+
Давайте послушаем как себе это видит автор. Для меня цена вопроса - в замене Код: plaintext 1.
Будем ли мы по 1 разу применять каждую замену? Или возможен вариант что после того как все замены закончились - в строке внезапно появятся новые подстроки которые снова открывают возможности к заменам. Понятно что такая циклическая замена как я описал - безсмысленна. Но проговорить ее стоит т.к. это вопрос стабильности API. Чтоб не было строк-осцилляторов. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
02.02.2022, 20:14
|
|||
---|---|---|---|
Замена в строке по словарю |
|||
#18+
Лично я решал задачу сокращения наименований товаров. Чтобы оно компактнее было, в ячейку грида на экране влезало как можно больше и т.п. Тут бессмысленна замена подстроки на равную по длине. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
02.02.2022, 20:20
|
|||
---|---|---|---|
Замена в строке по словарю |
|||
#18+
Из последних таких задач я помню надо было просто ключевые слова SQL такие как USER, TABLE, ORDER в динамических запросах заменять на закавыченные. И из логов пароли выкидывать. На звездочки ****** заменять. Ну и всякую sensitive-инфу. Личные данные там. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
02.02.2022, 20:32
|
|||
---|---|---|---|
Замена в строке по словарю |
|||
#18+
Dimitry Sibiryakov Это проблемы составляющего словарь замен и список правил замены. Потому-то и нет готового модуля, что у каждого требования свои. Спорное утверждение. Такие языки как XML схема и регулярные выражения тоже не всем требованиям удовлетворяют, однако они существуют и востребованы… PS: Нужно просто в макросе __DATE__ заменить месяцы. Jun -> Июнь. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
02.02.2022, 22:28
|
|||
---|---|---|---|
Замена в строке по словарю |
|||
#18+
Не получилось у меня на лямбдах. Да и std::string оказался дремучий. Я совсем забыл что в нем нету replace_all. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
02.02.2022, 23:07
|
|||
---|---|---|---|
|
|||
Замена в строке по словарю |
|||
#18+
petravСпорное утверждение. Такие языки как XML схема и регулярные выражения тоже не всем требованиям удовлетворяют, однако они существуют и востребованы… Потому что у них есть чёткие спецификации. У твоей задачи их нет. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
|
02.02.2022, 23:16
|
|||
---|---|---|---|
Замена в строке по словарю |
|||
#18+
Наверное в Perl такая задача решается кратко. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.02.2022, 09:34
|
|||
---|---|---|---|
Замена в строке по словарю |
|||
#18+
Dima T Лично я решал задачу сокращения наименований товаров. Чтобы оно компактнее было, в ячейку грида на экране влезало как можно больше и т.п. Тут бессмысленна замена подстроки на равную по длине. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.02.2022, 09:39
|
|||
---|---|---|---|
Замена в строке по словарю |
|||
#18+
ИМХО если надо просто заменить одну подстроку на другую в один проход, то доп.билиотек не надо никаких, даже если нет готовой функции для этого, то она пишется в пару строк. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.02.2022, 12:49
|
|||
---|---|---|---|
|
|||
Замена в строке по словарю |
|||
#18+
Ничего удивительного в таких запросах нет. Порог вхождения в программисты настолько упал, что в npm например даже есть модуль is-odd. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.02.2022, 14:05
|
|||
---|---|---|---|
Замена в строке по словарю |
|||
#18+
Anatoly Moskovsky Ничего удивительного в таких запросах нет. Порог вхождения в программисты настолько упал, что в npm например даже есть модуль is-odd. Ничего себе, я вам идею подарил на новый язык а-ля регулярные выражения. А Вы мне «начинающий программист». Московский, в историю можете войти… Это ж мне нужно из __DATE__ выделить сокращение месяца. Написать отображение Jun -> Июнь и т.д. А лучше по английскому сокращению месяца определить его номер. Преобразовать в дату и распечатать месяц компиляции в текущей локали. Потом запихнуть это в значение возвращённое __DATE__. Я устану это программировать. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.02.2022, 14:21
|
|||
---|---|---|---|
Замена в строке по словарю |
|||
#18+
Модератор: Всё что было похоже на оффтоп - поудалял. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.02.2022, 23:38
|
|||
---|---|---|---|
|
|||
Замена в строке по словарю |
|||
#18+
maytonНаверное в Perl такая задача решается кратко. посмотрел в сторону Perl - не увидел что в языке Practical Extraction Report Language это может решатся кратко. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
04.02.2022, 00:06
|
|||
---|---|---|---|
|
|||
Замена в строке по словарю |
|||
#18+
mayton Тут важно в каком порядке заменять. Я как-то раз по молодости делал из строки XML строку .... Вобщем надо было амперсанд заменить на & ну и другие кавычки и знаки больше-меньше. Можете себе представить что будет после Код: plaintext 1.
и еще раз. Короче Марковские алгоритмы отдыхали. Я переполнил память :) Тьюринг-полные, кстати petrav, есть такой язык программирования - Рефал что-то мне подсказывает, что самые эффективные его компиляторы делают дет. конечный автомат ... |
|||
:
Нравится:
Не нравится:
|
|||
|
04.02.2022, 00:36
|
|||
---|---|---|---|
Замена в строке по словарю |
|||
#18+
Вот как-то я property менял в старых проектах. Точно не помню но как-то так. Код: plaintext 1.
Есть у утилиты брат-близнец awk. Делает примерно то-же. Но это всё мелочи по сравнению с Perl. Насколько я разбираюсь он поглощает и покрывает все опции этих утилит и скриптует их исполнение в коде. Я не утверждаю что в Перле это будет в 1 строку но должно быть побогаче чем sed. Особенно если у нас задан справочник месяцев. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/search_topic.php?author=MaratM&author_mode=last_topics&do_search=1]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
160ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
others: | 271ms |
total: | 543ms |
0 / 0 |