FileToC — программа для ПК, предназначена для побайтного копирования содержания любых файлов в *.c файл с побайтным содержанием этого файла в виде массива C / C++. При разработке устройств на микро контроллерах (МК) возникает необходимость портирования содержания файла в исходный код программы МК для его последующей передачи, например, в качестве контента Web интерфейса устройства.
В главном окне программы вводится путь к файлу в ручную или с помощью окна выбора файла, которое вызывается при нажатии кнопки «Browse».


После выбора файла его полный путь будет отображаться в строке. При необходимости путь можно отредактировать вручную.

После чего для получения файла нужно нажать кнопку «Convert», после чего произойдет создание *.c файла, и выводится информационное окно, в котором сообщается об успешном выполнении. В окне для дополнительного контроля отображается объем файла в байтах, полученных в результате вычисления его объема, и количество байт, полученных с помощью счетчика байт при копировании файла.

При работе с программой возможны ошибки:
- не удалось открыть файл для чтения — если исходный файл не удалось прочитать, возможны ошибки в пути или имени файла;
- не удалось открыть файл для записи.
В результате преобразования создается файл с именем исходного файла с расширением *.c, внутри которого прикрепляется stdint.h и создаются двае переменные:
- имяФайла_fileSize = размер файла в байтах;
- имяФайла_FileData [] = {массив с побайтным содержимым исходного файла};.
Пример:
Исходный файл main.cpp:
// #include <windows.h> ....... ....... ....... return DialogBox(hInst, MAKEINTRESOURCE(DLG_MAIN), NULL, (DLGPROC)DlgMain); }
Полученный файл main.c:
/******************* The code generated by FileToC converter Developed by KVV_EL kvvel.com kvv_el@bk.ru *******************/ #include <stdint.h> uint32_t main_fileSize = 5732; uint8_t main_FileData [] = { 0x2F, 0x2F, 0x0D, 0x0A, 0x23, 0x69, 0x6E, 0x63, 0x6C, 0x75, 0x64, 0x65, 0x20, 0x3C, 0x77, 0x69, 0x6E, 0x64, 0x6F, 0x77, 0x73, 0x2E, 0x68, 0x3E, 0x0D, 0x0A, 0x23, 0x69, 0x6E, 0x63, 0x6C, 0x75, 0x64, 0x65, 0x20, 0x3C, 0x63, 0x6F, 0x6D, 0x6D, 0x63, 0x74, 0x72, 0x6C, 0x2E, ...................... ...................... ...................... 0x4E, 0x29, 0x2C, 0x20, 0x4E, 0x55, 0x4C, 0x4C, 0x2C, 0x20, 0x28, 0x44, 0x4C, 0x47, 0x50, 0x52, 0x4F, 0x43, 0x29, 0x44, 0x6C, 0x67, 0x4D, 0x61, 0x69, 0x6E, 0x29, 0x3B, 0x0D, 0x0A, 0x7D, 0x0D, 0x0A };