|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
Допустим у нас есть ассоциативный массив std::map<std::string, std::string> который определяет замены, которые нужно провести в строке. Неужели не существует готового модуля? Посмотрел в Boost.StringAlgo вроде ничего не нашёл. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2022, 15:04 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
Готовый модуль для одного простейшего цикла? Нынешние программисты совсем обленились... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2022, 15:08 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Готовый модуль для одного простейшего цикла? Нынешние программисты совсем обленились... Так в Boost.StringAlgo тоже не сказать что бы сложные алгоритмы. Зачем нужна эта библиотека? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2022, 15:12 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Готовый модуль для одного простейшего цикла? Нынешние программисты совсем обленились... На самом деле тут не все так просто с циклом: 1. Надо словарь отсортировать от длинных строк к коротким, т.к. короткая может сократиться, а потом длинная не совпадет, т.е. компаратор надо свой. 2. Одного цикла мало, т.к. если в цикле произошло сокращение, то надо еще один цикл, вдруг в результате сокращения сформировалась другая строка из словаря. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2022, 15:18 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
Это проблемы составляющего словарь замен и список правил замены. Потому-то и нет готового модуля, что у каждого требования свои. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2022, 15:32 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
Тут важно в каком порядке заменять. Я как-то раз по молодости делал из строки XML строку .... Вобщем надо было амперсанд заменить на & ну и другие кавычки и знаки больше-меньше. Можете себе представить что будет после Код: plaintext 1.
и еще раз. Короче Марковские алгоритмы отдыхали. Я переполнил память :) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2022, 18:02 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
Dima T 2. Одного цикла мало, т.к. если в цикле произошло сокращение, то надо еще один цикл, вдруг в результате сокращения сформировалась другая строка из словаря. Вот это самый интересный момент. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2022, 19:25 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
mayton, боюсь спросить - а что за самый интересный момент? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2022, 19:35 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
Гарантии того что алгоритм когда-то остановится. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2022, 19:39 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
mayton Гарантии того что алгоритм когда-то остановится. В обычном языке имеет смысл только сокращение, поэтому исходная подстрока должна быть больше замены. В таком случае гарантированно остановится. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2022, 19:53 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
Давайте послушаем как себе это видит автор. Для меня цена вопроса - в замене Код: plaintext 1.
Будем ли мы по 1 разу применять каждую замену? Или возможен вариант что после того как все замены закончились - в строке внезапно появятся новые подстроки которые снова открывают возможности к заменам. Понятно что такая циклическая замена как я описал - безсмысленна. Но проговорить ее стоит т.к. это вопрос стабильности API. Чтоб не было строк-осцилляторов. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2022, 20:05 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
Лично я решал задачу сокращения наименований товаров. Чтобы оно компактнее было, в ячейку грида на экране влезало как можно больше и т.п. Тут бессмысленна замена подстроки на равную по длине. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2022, 20:14 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
Из последних таких задач я помню надо было просто ключевые слова SQL такие как USER, TABLE, ORDER в динамических запросах заменять на закавыченные. И из логов пароли выкидывать. На звездочки ****** заменять. Ну и всякую sensitive-инфу. Личные данные там. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2022, 20:20 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Это проблемы составляющего словарь замен и список правил замены. Потому-то и нет готового модуля, что у каждого требования свои. Спорное утверждение. Такие языки как XML схема и регулярные выражения тоже не всем требованиям удовлетворяют, однако они существуют и востребованы… PS: Нужно просто в макросе __DATE__ заменить месяцы. Jun -> Июнь. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2022, 20:32 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#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, 22:28 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
petravСпорное утверждение. Такие языки как XML схема и регулярные выражения тоже не всем требованиям удовлетворяют, однако они существуют и востребованы… Потому что у них есть чёткие спецификации. У твоей задачи их нет. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2022, 23:07 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
Наверное в Perl такая задача решается кратко. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2022, 23:16 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
Dima T Лично я решал задачу сокращения наименований товаров. Чтобы оно компактнее было, в ячейку грида на экране влезало как можно больше и т.п. Тут бессмысленна замена подстроки на равную по длине. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2022, 09:34 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
ИМХО если надо просто заменить одну подстроку на другую в один проход, то доп.билиотек не надо никаких, даже если нет готовой функции для этого, то она пишется в пару строк. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2022, 09:39 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
Ничего удивительного в таких запросах нет. Порог вхождения в программисты настолько упал, что в npm например даже есть модуль is-odd. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2022, 12:49 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
Anatoly Moskovsky Ничего удивительного в таких запросах нет. Порог вхождения в программисты настолько упал, что в npm например даже есть модуль is-odd. Ничего себе, я вам идею подарил на новый язык а-ля регулярные выражения. А Вы мне «начинающий программист». Московский, в историю можете войти… Это ж мне нужно из __DATE__ выделить сокращение месяца. Написать отображение Jun -> Июнь и т.д. А лучше по английскому сокращению месяца определить его номер. Преобразовать в дату и распечатать месяц компиляции в текущей локали. Потом запихнуть это в значение возвращённое __DATE__. Я устану это программировать. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2022, 14:05 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
Модератор: Всё что было похоже на оффтоп - поудалял. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2022, 14:21 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
maytonНаверное в Perl такая задача решается кратко. посмотрел в сторону Perl - не увидел что в языке Practical Extraction Report Language это может решатся кратко. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2022, 23:38 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
mayton Тут важно в каком порядке заменять. Я как-то раз по молодости делал из строки XML строку .... Вобщем надо было амперсанд заменить на & ну и другие кавычки и знаки больше-меньше. Можете себе представить что будет после Код: plaintext 1.
и еще раз. Короче Марковские алгоритмы отдыхали. Я переполнил память :) Тьюринг-полные, кстати petrav, есть такой язык программирования - Рефал что-то мне подсказывает, что самые эффективные его компиляторы делают дет. конечный автомат ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2022, 00:06 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
Вот как-то я property менял в старых проектах. Точно не помню но как-то так. Код: plaintext 1.
Есть у утилиты брат-близнец awk. Делает примерно то-же. Но это всё мелочи по сравнению с Perl. Насколько я разбираюсь он поглощает и покрывает все опции этих утилит и скриптует их исполнение в коде. Я не утверждаю что в Перле это будет в 1 строку но должно быть побогаче чем sed. Особенно если у нас задан справочник месяцев. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2022, 00:36 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
Питонский вариант. Ну тоже не в 1 строку. Код: python 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2022, 00:50 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
mayton Питонский вариант. Ну тоже не в 1 строку. Код: sql 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2022, 07:06 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
petrav Это ж мне нужно из __DATE__ выделить сокращение месяца. Написать отображение Jun -> Июнь и т.д. А лучше по английскому сокращению месяца определить его номер. Преобразовать в дату и распечатать месяц компиляции в текущей локали. https://stackoverflow.com/questions/11697820/how-to-use-date-and-time-predefined-macros-in-as-two-integers-then-stri ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2022, 14:12 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
Вот интересно если сделать кросс-компиллятор С++ => Templates/Macros C++. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2022, 14:15 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
White Owl mayton Питонский вариант. Ну тоже не в 1 строку. Код: sql 1. 2. 3. 4. 5. 6.
Но нам нужна динамическая генерация словаря. Как опция. Это же моветон такое писать. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2022, 17:43 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
petrav, Так в перле все динамическое - в рантайме строки выполняются )) В С++ тоже ничего не мешает из словаря сделать регекс и провести замену. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2022, 21:55 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
Anatoly Moskovsky petrav, Так в перле все динамическое - в рантайме строки выполняются )) В С++ тоже ничего не мешает из словаря сделать регекс и провести замену. В классических регулярках можно проводить замену по словарю? Но я не это имел в виду. А замену которую семантически можно было бы описать так: Код: plaintext
Или из БД. Вот что я понимал под динамикой. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2022, 22:22 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
Хм.. у тебя самый первый пост начинается так Допустим у нас есть ассоциативный массив std::map<std::string, std::string> тоесть он как-бы уже задан. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2022, 00:13 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
petrav Но нам нужна динамическая генерация словаря. Как опция. Это же моветон такое писать. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2022, 01:27 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
petrav Anatoly Moskovsky petrav, Так в перле все динамическое - в рантайме строки выполняются )) В С++ тоже ничего не мешает из словаря сделать регекс и провести замену. В классических регулярках можно проводить замену по словарю? petrav Но я не это имел в виду. А замену которую семантически можно было бы описать так: Код: plaintext
Или из БД. Вот что я понимал под динамикой. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2022, 01:32 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
Возможно тема топика про это и была. Локализовать _DATE_ + _TIME_ . Я-бы средствами сборщиков делал. Забил-бы ункиальный плейсхолдер в исходник. А потом за 1 миг до компилляции просто текстовой заменой вставлял бы даны в русском языке. Типа свой пре-процессор. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2022, 12:31 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
White Owl Вообще-то, такая задача решается проще. Берем строку, читаем ее как дату, потом пишем эту дату в нужной локали. Текстовой заменой никто не занимается. Локаль уже стоит другая, а в __DATE__ всё по "американски". :) Я не вижу как в std::get_time() локаль передать. Но попробовать можно. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2022, 14:22 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
petravЛокаль уже стоит другая, а в __DATE__ всё по "американски". :) Потому что так гласит стандарт: macros__DATE__ expands to the date of translation, a character string literal of the form "Mmm dd yyyy". The first character of "dd" is a space if the day of the month is less than 10. The name of the month is as if generated by std::asctime() asctimeThe function does not support localization, and the newline character cannot be removed. petravЯ не вижу как в std::get_time() локаль передать. asctimePOSIX marks this function obsolete and recommends locale-dependent std::strftime instead. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2022, 14:32 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
Вот интересно: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
Если IS_RU_STR==0 оно парсит дату по-английски, а потом печатает её по-русски. Если IS_RU_STR==1 дату по-русски оно и не парсит. А почему так? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2022, 15:55 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
Неужели потому, что С++ класс использует С++ локаль, а не С? Да не, это было бы слишком просто... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2022, 16:08 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Неужели потому, что С++ класс использует С++ локаль, а не С? Да не, это было бы слишком просто... Все функции находятся в `std`, следовательно это всё C++. Да, кстати, MSVC + файл исходников в utf8+BOM. Но я удалил префикс u8 и ничего не изменилось. Русскую дату оно не парсит. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2022, 16:17 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
petravВсе функции находятся в `std`, следовательно это всё C++. Это неправильно следствие: https://en.cppreference.com/w/cpp/locale/setlocale The setlocale function installs the specified system locale or its portion as the new C locale. Проверь конкретно какая локаль имбуёвана у твоего стрингстрима. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2022, 16:56 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov petravВсе функции находятся в `std`, следовательно это всё C++. Это неправильно следствие: https://en.cppreference.com/w/cpp/locale/setlocale The setlocale function installs the specified system locale or its portion as the new C locale. Проверь конкретно какая локаль имбуёвана у твоего стрингстрима. Да, imbue() работает. Если локаль мы можем установить локально для этого потока, то это решает проблему корректно. Независимо от текущей глобальной локали. Спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2022, 18:23 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
Ну вот. Если ставится задача прочитать из строки дату в заданной локали, но при этом не затрагивая глобальную (установленную) локаль: Код: plaintext 1. 2. 3.
Ошибки парсинга проверить нельзя, плохо. Это точно самое разумное решение? У меня такое ощущение, что я что-то куда-то не туда примудил. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2022, 19:05 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
petravУ меня такое ощущение, что я что-то куда-то не туда примудил. Это фигня целиком, начиная с постановки задачи. Твой файл может быть вообще не перекомпилирован при сборке просто потому, что не изменялся. Соответственно и решение - в системе сборки, а не исходниках. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2022, 19:17 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov petravУ меня такое ощущение, что я что-то куда-то не туда примудил. Это фигня целиком, начиная с постановки задачи. Твой файл может быть вообще не перекомпилирован при сборке просто потому, что не изменялся. Соответственно и решение - в системе сборки, а не исходниках. И каково же по вашему решение? PS: В документации по созданию официальной сборки написано: пересобрать приложение, т.е. с нуля. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2022, 22:46 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
Можно и исходники не трогать. Просто при сборке положить в Windows-ресурсы строку с датой. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2022, 23:43 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
У него Линух. В винде было бы проще: там в заголовке экзешника есть специальное поле для таймштампа сборки. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2022, 01:18 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
Можно так попробовать. Свой макрос. Код: python 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2022, 01:43 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
А в makefile это еще проще делается. Добавляется вот такой код: Код: plaintext 1. 2. 3. 4. 5.
А timestamp.h ставится пререквезитом для какого-нибудь about.cpp и инклудится в нем. .PHONY объявляет цель как "делать всегда" и на каждый запуск make этот файл будет обновляться. А какой там формат date напечатает - зависит от его параметров, и он наследует локаль системы. Все просто и легко. А еще туда можно запихнуть всякие Код: plaintext 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2022, 04:00 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov У него Линух. В винде было бы проще: там в заголовке экзешника есть специальное поле для таймштампа сборки. У меня Win + MSVS. Для даты сборки я не помню стандартного свойства в *.rc файле. Но дело не в этом. Кто данные будет вносить в этот файл? Оно конечно можно углубиться в MSBuild и на C# в PreBuild что-то вкорячить. Но это не так просто. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2022, 11:48 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
Я не специалист по Windows-сборочным тулзам. Но там что-то должно быть. Помнится была консольная утилита rc.exe. Тоесть цена вопроса - перед компилляцией просто обновить string ресурс с текущей датой. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2022, 12:43 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
petravКто данные будет вносить в этот файл? Компилятор. https://docs.microsoft.com/en-us/windows/win32/debug/pe-format https://stackoverflow.com/a/26297/13964273 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2022, 13:43 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovКомпилятор. Ну или можно делать как я, заполнять поле ручками после сборки: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118.
Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2022, 13:57 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
Формат ресурс-файла описан https://formats.kaitai.io/windows_resource_file/index.html По крайней мере можно кастомными средствами его генерить. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2022, 16:51 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Ну как бы лезть в PE Format… ну это как бы слишком, имхо. А про VS_VERSION_INFO, это я знаю. Где-то у меня даже модуль есть для чтения версии приложения от туда. И скрипт увеличивающий версию приложения при каждом коммите в мастер. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2022, 17:22 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
Собственно кому нужна дата сборки в бинарнике? Заказчику? Разработчику сорцах оно не надо. Если сорцы стоят под версионным контролем то дату мы всё равно видим через git/svn. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2022, 17:31 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
maytonСобственно кому нужна дата сборки в бинарнике? ну, во-первых, она красиво светится в системных свойствах файла. Во-вторых, у меня она выводится опять же для красоты в окошке About. В остальном я полагаюсь на нумерацию версий. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2022, 18:04 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
mayton Собственно кому нужна дата сборки в бинарнике? Заказчику? Да, заказчику. Инженер смотрит на дату создания приложения и примерно помнит хронологию развития. А номера версий они не запоминают. Они наоборот регулярно ломают нумерацию версий просто так. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2022, 18:24 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov maytonСобственно кому нужна дата сборки в бинарнике? ну, во-первых, она красиво светится в системных свойствах файла. Во-вторых, у меня она выводится опять же для красоты в окошке About. В остальном я полагаюсь на нумерацию версий. А если качать через веб или ftp то дата создания файла обычно .. тово? Или тогда надо весь дистрибутив паковать в zip чтобы гарантировать сохранность дат. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2022, 22:03 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
Повторяю медленно: дата сборки пишется в заголовок экзешника, а дата релиза - в заголовок информации о версии. Естественно, они не могут потеряться просто так. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2022, 23:15 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
А ну сорян. Просто показалось что речь идет о файловых атрибутах. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2022, 23:19 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
petrav mayton Собственно кому нужна дата сборки в бинарнике? Заказчику? Да, заказчику. Инженер смотрит на дату создания приложения и примерно помнит хронологию развития. А номера версий они не запоминают. Они наоборот регулярно ломают нумерацию версий просто так. Кто ломает? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2022, 09:13 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
Изопропил petrav пропущено... Да, заказчику. Инженер смотрит на дату создания приложения и примерно помнит хронологию развития. А номера версий они не запоминают. Они наоборот регулярно ломают нумерацию версий просто так. Кто ломает? Инженеры. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2022, 12:38 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Повторяю медленно: дата сборки пишется в заголовок экзешника, а дата релиза - в заголовок информации о версии. Естественно, они не могут потеряться просто так. Мне кажется ваша программа только обновляет windows resources. В PE Format она не лезет. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2022, 12:39 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
petravМне кажется ваша программа только обновляет windows resources. В PE Format она не лезет. Да. Потому что окно системных свойств и мой код отображают дату из ресурсов, а не заголовка. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2022, 13:47 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
petrav Изопропил пропущено... Кто ломает? Инженеры. они приложение собирают? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2022, 15:14 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
... переполнил память :) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2022, 16:06 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
Изопропил petrav пропущено... Инженеры. они приложение собирают? Они пишут ТЗ и ТУ. Они ПО тестируют, отвечают за ПО перед заказчиком, пишут на ПО документацию и впаривают ПО военной приёмке. Ещё их сношают в первом отделе. Золотые люди… ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2022, 18:19 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
petravОни пишут ТЗ и ТУ. Они ПО тестируют, отвечают за ПО перед заказчиком, пишут на ПО документацию и впаривают ПО военной приёмке. И как это может повлиять на версию, которая суть строка в файле, лежащем в в СКВ?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2022, 18:42 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov petravОни пишут ТЗ и ТУ. Они ПО тестируют, отвечают за ПО перед заказчиком, пишут на ПО документацию и впаривают ПО военной приёмке. И как это может повлиять на версию, которая суть строка в файле, лежащем в в СКВ?.. Потому что есть документ ТУ, в нём расписано всё: версии ПО, условия, требования и прочее. Этот документ пишут инженеры (и там написана версия). Военные люди специфичные (особенно в войсках). Версию 2 или 3 они понимают. Версию 3.1 понимают уже с трудом. Версию 5.56 (где 56 — это сквозной счётчик обновлений ПО) — военные это вообще не поймут и не подпишут. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2022, 19:11 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
И? Версия продукта и версия файла это отдельные строки в ресурсе и они не обязаны совпадать. У меня, например, версия продукта просто "1.0" в то время как версия файла - полностью четырёхчленная. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2022, 19:16 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov И? Версия продукта и версия файла это отдельные строки в ресурсе и они не обязаны совпадать. У меня, например, версия продукта просто "1.0" в то время как версия файла - полностью четырёхчленная. И то что когда военный откроет About или свойства файла... И увидит там то, что он не подписывал (какие-то версии файла и т.д.) — то будет скандал. Поэтому до этого сдали версию 3.55, а потом 2.1. Потому что… забыли и подписали. И всё. Вы может расскажете, в чём смысл вашей четырёхзначной версии? По каждому компоненту. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2022, 19:34 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
petravИ то что когда военный откроет About или свойства файла... И увидит там ....то, что ты ему выведешь. Идея вывести в About одну версию, а в логи другую - реально настолько запредельно сложная?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2022, 19:54 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov petravИ то что когда военный откроет About или свойства файла... И увидит там ....то, что ты ему выведешь. Идея вывести в About одну версию, а в логи другую - реально настолько запредельно сложная?.. Так и в логи (точнее отчёты) нельзя выводить реальную версию. Отчёты тоже на подпись. Идей то у меня много. Но разговор шёл о том как инженер ломает продуманную систему нумераций версий. Вы о своей так и не рассказали. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2022, 20:06 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
petrav Dimitry Sibiryakov И? Версия продукта и версия файла это отдельные строки в ресурсе и они не обязаны совпадать. У меня, например, версия продукта просто "1.0" в то время как версия файла - полностью четырёхчленная. И то что когда военный откроет About или свойства файла... И увидит там то, что он не подписывал (какие-то версии файла и т.д.) — то будет скандал. Поэтому до этого сдали версию 3.55, а потом 2.1. Потому что… забыли и подписали. И всё. Вы может расскажете, в чём смысл вашей четырёхзначной версии? По каждому компоненту. С моей точки зрения релиз программного продукта - это bundle, архив, упаковка. Где есть манифест с описанием где есть список фичей и багофиксов + цифровые подписи его создателей. Этого достаточно. Ведь программный продукт состоит не только из екзешника но еще и кучи библиотек, всяких бинарей и хелпов. Кликать мышкой в свойства файла - это забавная практика но если приложение оконное - можно сделать Menu->About. Или если консольное - то сам бох велел писать версию туда. А современные практики поддержки уже предлагают систему где название версии - это строка которая несет более широкие смыслы чем просто счетчик. Например инкремент минорной части гарантирует что совместимость интерфейсов библиотек все еще сохраняется а инкремент мажорной версии - имеет право игнорировать обратную совместимость. Более подробно тут: https://www.everything2.com/index.pl?node_id=1128644 https://tldp.org/HOWTO/Software-Release-Practice-HOWTO/naming.html#AEN192 Хотя каждая организация внутри себя всё равно пере-договаривается о смыслах версий. Но главное что заказчк понимает что его ждет. Хотфикс. Или релиз-кандидат. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2022, 20:29 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
Bred eFeM Код: plaintext 1.
А зачем такое писать? Ключ - пустой. Это не наш кейс. Не бизнес-кейс я-бы сказал. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2022, 22:59 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
petravТак и в логи (точнее отчёты) нельзя выводить реальную версию. Отчёты тоже на подпись. Мы, походу, о разных вещах говорим... petravВы о своей так и не рассказали. Когда мне присылают багреп с отладочным логом на гигабайт и/или крэш-дамп памяти, по точной версии я беру из архива файлы с отладочной информацией для отладчика и/или map файл для ручного пересчёта дампа стэка в имена методов. Потому что сборка приложения - на мне. И никакой инженер тут совершенно ни при чём: ему попадает готовый бинарник. Если у тебя сборкой занимается какой-то левый инженер - тогда пусть он же тебя и обеспечивает вышеперечисленным для отладки. И совершенно всё равно какая там версия им прописана, всё, что тебе надо, это соответствие адресов памяти строкам кода снапшота СКВ из которого шла сборка. А что за хренотень ты творишь с датами - мне совершенно непонятно. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2022, 23:17 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
mayton Bred eFeM Код: plaintext 1.
А зачем такое писать? Ключ - пустой. Это не наш кейс. Не бизнес-кейс я-бы сказал. Потому что это ваш косяк. Причём очевидный (я не увидел). Тесты вы не написали. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2022, 14:29 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
Это POC. Он без тестов идет обычно. Берите - дорабатывайте. Маржинальные кейсы - это уже в процессе практики доводят. Я вообще не знаю ни одного разработчика который сразу пишет работающий код и для всех кейсов и без ошибок. И дело даже не в том ошибается он или нет а в том что контракт еще не определен строго. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2022, 14:32 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
White Owl, то же, но поизящней. слегка. Код: powershell 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2022, 22:12 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
volodin661 White Owl, то же, но поизящней. слегка. Код: powershell 1. 2. 3. 4. 5. 6.
Я и забыл о $". Слишком уж неявный join - неявный :) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2022, 23:47 |
|
|
start [/forum/topic.php?all=1&fid=57&tid=2017128]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
25ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
108ms |
get tp. blocked users: |
1ms |
others: | 282ms |
total: | 461ms |
0 / 0 |