2009-04-08 4 views
0

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

Помощь высоко ценится (:

+0

какая операционная система? – 2009-04-08 17:56:47

ответ

5

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

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

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

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

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

+0

+1 для обработки системных ресурсов. В MacOS рассмотрите возможность использования формы .app для вашего приложения. В системах * nix найдите обработчик ресурсов в своей структуре: кто-то еще, возможно, уже сделал работу ... – dmckee

1

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

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

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

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

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

+0

Если вы этого не сделали, сделайте это сейчас. Тогда * не * используйте его в рабочей среде. Но это такой простой и простой ввод в генерацию кода, что нет оправдания тому, что он не пробовал. – dmckee

+0

Я никогда не делал этого с текстовым файлом, но я сделал это для таблиц данных умеренного размера. –

+0

@Mark: Я предположил, что вы пробовали это, инструкция была нацелена на OP. И BTW, я, вероятно, не должен был подчеркивать «не надо» выше. Умеренность во всем. Во всяком случае, хорошее резюме. – dmckee

5

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