Включение текстовых файлов в приложения? - PullRequest
0 голосов
/ 08 апреля 2009

Можно ли в любом случае включить довольно большой текстовый файл (около 700 КБ) в саму программу, чтобы мне не приходилось отправлять текстовые файлы вместе в каталоге приложения? Это первый раз, когда я пытаюсь сделать что-то подобное, и я понятия не имею, с чего начать.

Помощь очень ценится (:

Ответы [ 3 ]

5 голосов
/ 08 апреля 2009

Посмотрите на команду xxd и ее опцию -include. Вы получите буфер и переменную длины в формате файла C.

5 голосов
/ 08 апреля 2009

В зависимости от используемой вами платформы, вы, скорее всего, сможете встроить файл в какой-либо контейнер ресурсов.

Если вы программируете на платформе Windows, возможно, вы захотите посмотреть файлы ресурсов. Вы можете найти базовое вступление здесь:

http://msdn.microsoft.com/en-us/library/y3sk7e6b.aspx

С более подробной информацией здесь:

http://msdn.microsoft.com/en-us/library/zabda143.aspx

1 голос
/ 08 апреля 2009

Если вы можете выяснить, как использовать файл ресурса, это будет предпочтительный метод.

Нетрудно превратить текстовый файл в файл, который может быть скомпилирован непосредственно вашим компилятором. Это может работать только для небольших файлов - ваш компилятор может иметь ограничение на размер одной строки. Если это так, незначительное изменение синтаксиса сделало бы массив меньших строк, который бы работал просто отлично.

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

This is my example document:
"Four score and seven years ago,"
can be found in the file c:\quotes\GettysburgAddress.txt

Конвертировать в:

static const char Text[] =
"This is my example document:\n"
"\"Four score and seven years ago,\"\n"
"can be found in the file c:\\quotes\\GettysburgAddress.txt\n"
;

Это создает переменную Text, которая содержит одну строку со всем содержимым вашего файла. Это работает, потому что последовательные строки с одним пробелом соединяются в одну строку.

...