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
};


