![>](style_images/1/nav_m.gif)
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.147.51.80] |
![]() |
|
![]() |
|
|
Здравствуйте гуру и ценители великого языка наших предков!
Ладно, шучу, на нем все еще кто-то пишет... Есть в этом великом языке такая замечательная штука как raw-литералы: ![]() ![]() const char* raw_literal = R"raw_string( Hello, world! \n <- а это не эскейп-последовательность, а просто символы )raw_string"; Очень классная и удобная штука. Но, как вынести значение этого литерала в отдельный файл, чтобы значение этого файла подставлялось в переменную на этапе компиляции? Т.е. нужно что-то типа такого: ![]() ![]() const char* raw_literal = R"raw_string( #include "file.txt" )raw_string"; Или может существует какой-нибудь другой способ загнать содержимое файла в константу? |
Сообщ.
#2
,
|
|
|
Цитата Garry @ Смотря как генерится file.txt, короче просто из него сделать литерал Если батником то просто склеить содержимое файла с префиксом R"( и суффиксом )" ![]() ![]() const char* aa = R"(test )" #include "test.txt" R"( test2)"; test.txt ![]() ![]() R"(hello, world \n )" |
Сообщ.
#3
,
|
|
|
Цитата Garry @ Очень классная и удобная штука. Но, как вынести значение этого литерала в отдельный файл, чтобы значение этого файла подставлялось в переменную на этапе компиляции? Есть более другое предложение ![]() |
Сообщ.
#4
,
|
|
|
Цитата sharky72 @ Цитата Garry @ Если батником то просто склеить содержимое файла с префиксом R"( и суффиксом )" Да, примерно так сейчас и делаю. Только я все это пишу в Arduino IDE для ESP32, и мне бы не хотелось использовать сторонние инструменты. Цитата Majestio В качестве "контейнера" для хранения текстовых данных использовать линкуемый файл ресурсов. Мне нужно туда положить текст HTML страничек. И опять же хочется, хочется обойтись без дополнительных телодвижений. Но вы сподвигли меня найти такой вот инструмент: https://habr.com/ru/articles/545946/ Он правда почему-то не работает в случает с STM32, но я пока не отчаиваюсь. ![]() |
Сообщ.
#5
,
|
|
|
Цитата Garry @ Мне нужно туда положить текст HTML страничек. И опять же хочется, хочется обойтись без дополнительных телодвижений. Посмотри мою беседу с ChatGPT ![]() Цитата Можно ли для пратформы STM32 при создании исполняемых файлов использовать линкуемые файлы ресурсов формата *.rc? Да, для платформы STM32 можно использовать линкуемые файлы ресурсов формата *.rc при создании исполняемых файлов. Файлы ресурсов могут содержать различные данные, такие как изображения, звуки, шрифты и другие ресурсы, которые могут быть использованы в приложении. Линковка этих файлов позволяет включить ресурсы непосредственно в исполняемый файл, что облегчает их управление и использование в приложении на платформе STM32. Цитата Как в файл ресурсов формата *.rc включить многострочный файл формата HTML, приведи пример В файл ресурсов формата *.rc можно включить многострочный файл формата HTML, используя специальные символы для экранирования и переноса строк. Вот пример: ![]() ![]() ID_MY_HTML_FILE HTML "path/to/myfile.html" В данном примере, "ID_MY_HTML_FILE" - это идентификатор, который вы можете выбрать самостоятельно. "path/to/myfile.html" - это путь к вашему HTML-файлу. После включения файла ресурсов в проект STM32, вы сможете получить доступ к содержимому HTML-файла в коде вашего приложения. Например, вы можете использовать функции для чтения содержимого файла и отобразить его на экране или выполнить другие операции с данными. Обратите внимание, что для работы с HTML-файлом вам может потребоваться соответствующая библиотека или функции для обработки HTML-кода в вашем приложении на платформе STM32. Да, ИИ очень часто выдает просто фантастическую лабуду, проверять нужно. И тем не менее, часто бывают и вполне себе нормальные ответы-советы. Ну и от себя ... *.rc файлы перед линковкой сами компилируются в формат *.res, поэтому нужно заранее определить, что в используемом тулчейне для STM32 такой компилятор есть. И самое главное ![]() |