将文本文件合并到应用程序中?

时间:2009-04-08 17:40:54

标签: c++ file import text-files

无论如何,我可以将一个非常大的文本文件(大约700KB)合并到程序本身中,所以我不必将文本文件一起发送到应用程序目录中吗?这是我第一次尝试做这样的事情,我不知道从哪里开始。

非常感谢帮助(:

3 个答案:

答案 0 :(得分:5)

根据您所使用的平台,您很可能能够将该文件嵌入某种资源容器中。

如果您在Windows平台上进行编程,那么您可能需要查看资源文件。你可以在这里找到一个基本的介绍:

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

这里有更详细的信息:

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

答案 1 :(得分:5)

查看 xxd 命令及其 -include 选项。您将在C格式的文件中获得缓冲区和长度变量。

答案 2 :(得分: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"
;

这将生成一个变量Text,其中包含一个包含文件全部内容的字符串。它的工作原理是因为连续的字符串之间只有空格,只能连接成一个字符串。