На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: Qraizer, Hsilgos
  
> Raw-литералы , Как вынести значение в отдельный файл?
    Здравствуйте гуру и ценители великого языка наших предков!
    Ладно, шучу, на нем все еще кто-то пишет...

    Есть в этом великом языке такая замечательная штука как raw-литералы:

    ExpandedWrap disabled
      const char* raw_literal = R"raw_string(
      Hello,
      world!
      \n <- а это не эскейп-последовательность, а просто символы
       
      )raw_string";


    Очень классная и удобная штука. Но, как вынести значение этого литерала в отдельный файл, чтобы значение этого файла подставлялось в переменную на этапе компиляции?

    Т.е. нужно что-то типа такого:

    ExpandedWrap disabled
      const char* raw_literal = R"raw_string(
      #include "file.txt"
      )raw_string";


    Или может существует какой-нибудь другой способ загнать содержимое файла в константу?
      Цитата Garry @


      Смотря как генерится file.txt, короче просто из него сделать литерал
      Если батником то просто склеить содержимое файла с префиксом R"( и суффиксом )"

      ExpandedWrap disabled
        const char* aa = R"(test )"
        #include "test.txt"
        R"( test2)";


      test.txt
      ExpandedWrap disabled
        R"(hello,
        world
        \n
        )"
      Сообщение отредактировано: sharky72 -
        Цитата Garry @
        Очень классная и удобная штука. Но, как вынести значение этого литерала в отдельный файл, чтобы значение этого файла подставлялось в переменную на этапе компиляции?

        Есть более другое предложение :lol: ИМХО не менее красивое. И также не пугающее своей новизной ... В качестве "контейнера" для хранения текстовых данных использовать линкуемый файл ресурсов. И вот в него уже включать всё, что душа пожелает. Ну да, чуть-чуть будет больше кода, чем с литералами. Но простота использования подкупает.
          Цитата sharky72 @
          Цитата Garry @

          Если батником то просто склеить содержимое файла с префиксом R"( и суффиксом )"

          Да, примерно так сейчас и делаю. Только я все это пишу в Arduino IDE для ESP32, и мне бы не хотелось использовать сторонние инструменты.

          Цитата Majestio
          В качестве "контейнера" для хранения текстовых данных использовать линкуемый файл ресурсов.

          Мне нужно туда положить текст HTML страничек. И опять же хочется, хочется обойтись без дополнительных телодвижений. Но вы сподвигли меня найти такой вот инструмент:
          https://habr.com/ru/articles/545946/

          Он правда почему-то не работает в случает с STM32, но я пока не отчаиваюсь. :)
            Цитата Garry @
            Мне нужно туда положить текст HTML страничек. И опять же хочется, хочется обойтись без дополнительных телодвижений.

            Посмотри мою беседу с ChatGPT :)

            Цитата
            Можно ли для пратформы STM32 при создании исполняемых файлов использовать линкуемые файлы ресурсов формата *.rc?

            Да, для платформы STM32 можно использовать линкуемые файлы ресурсов формата *.rc при создании исполняемых файлов. Файлы ресурсов могут содержать различные данные, такие как изображения, звуки, шрифты и другие ресурсы, которые могут быть использованы в приложении. Линковка этих файлов позволяет включить ресурсы непосредственно в исполняемый файл, что облегчает их управление и использование в приложении на платформе STM32.

            Цитата
            Как в файл ресурсов формата *.rc включить многострочный файл формата HTML, приведи пример

            В файл ресурсов формата *.rc можно включить многострочный файл формата HTML, используя специальные символы для экранирования и переноса строк. Вот пример:

            ExpandedWrap disabled
              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 такой компилятор есть. И самое главное ;) если вдруг заинтересуешься моим советом и начнешь разбираться - вдруг найдешь вменяемую документацию-спецификацию по RC, то поделись, пожалуйста! Лично я нашел только какие-то обрывки док. Вопрос не раскрыт нормально.
            0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
            0 пользователей:


            Рейтинг@Mail.ru
            [ Script execution time: 0,0308 ]   [ 16 queries used ]   [ Generated: 4.03.24, 09:32 GMT ]