Как лучше всего реализовать хранение «шаблонов» файлов?
Задача: Есть программа, которая при условном вызове функции должна создать некоторое количество файлов с заранее определенным содержимым. Пусть это будет файл helloworld.txt содержимым "Hello".
Как лучше всего реализовать хранение этого содержимого файла в программе? Ну не пихать же все это тупо в константу, ибо это будет выглядеть ужасно при большом наполнении файла
mayton2019, Мне жалко не памяти, а свою психику, которая будет поддерживать этот проект в дальнейшем, видя следующее в 5-10 экземплярах:
"; Bootloader\n"
"; BIOS boots in 16-bit mode\n"
"; The program is waiting for loading at 0x7c00\n"
"bits 16\n"
"org 0x7c00\n"
"\n"
"section .text\n"
"\n"
"; Entry point\n"
"_start:\n"
" ; Loading kernel\n"
" mov bx, 0x1000 ; offset. The kernel is loaded at this address\n"
" mov ah, 0x02 ; Int 13h/AH=2 = Read Sectors From Drive\n"
" mov al, 0x01 ; Sectors to read\n"
" mov ch, 0x00 ; cylinder\n"
" mov cl, 0x02 ; Sector to read (start)\n"
" mov dh, 0x00 ; Head\n"
"\n"
" int 13h\n"
"\n"
" popf\n"
" jmp 0x0:0x1000\n"
"\n"
"\n"
"; Bringing the file to a size of 510 bytes\n"
"times 510-($-$$) db 0\n"
"; Boot signature\n"
"; On boot BIOS reads the last 2 bytes of the first sector, if it is 0xAA55 it loads it\n"
"dw 0xAA55";
Смотри. Тут-же технический форум. А ты говоришь про лечение своей психики. Сложно читать ассемблерный код?
Не пиши на ассемблере. Или пиши макросы. Подпрограммы. Ассемблер также структкризируется как и С++/Pascal e.t.c.
mayton2019, Нет, я не это имел ввиду :) Это реальный код из шаблона для файла, я пишу среду разработки низкоуровневых приложений
Я говорил про "\n" и отсутствие подсветки синтаксиса, что очень сильно усложняет редактирование файла
Шаблонизатор для всех языков разработки. А шаблоны ассемблера не надо внедрять в исходник.
Положи их внешним файлом. Или в Microsoft C++ есть ресурсы. Это вроде как файлы проекта
но которые потом будут скомпилированы внутри бинарника.
И предполагаете ее всю, со всем барахлом, которое ей может понадобиться лишь однажды, утаптывать в один исполняемый файл? Для этого существуют инсталляторы, которые разбросают это барахло по папкам программы, откуда она, буде понадобится, скопирует это в папки пользователя.
Хранение блобов в файле программы (оно будет мапиться на адресное пространство и читаться эффективнее fread) в .data секции, создать объектные файлы с помощью objcopy или генерировать константы массивов с 0xXX с помощью xdd