【发布时间】:2009-04-08 17:40:54
【问题描述】:
我是否可以将一个相当大的文本文件(大约 700KB)合并到程序本身中,这样我就不必将文本文件一起发送到应用程序目录中?这是我第一次尝试做这样的事情,我不知道从哪里开始。
非常感谢您的帮助(:
【问题讨论】:
标签: c++ file import text-files
我是否可以将一个相当大的文本文件(大约 700KB)合并到程序本身中,这样我就不必将文本文件一起发送到应用程序目录中?这是我第一次尝试做这样的事情,我不知道从哪里开始。
非常感谢您的帮助(:
【问题讨论】:
标签: c++ file import text-files
根据您所在的平台,您很可能能够将文件嵌入到某种资源容器中。
如果您在 Windows 平台上编程,那么您可能需要查看资源文件。您可以在此处找到基本介绍:
http://msdn.microsoft.com/en-us/library/y3sk7e6b.aspx
这里有更多详细信息:
【讨论】:
查看 xxd 命令及其 -include 选项。您将在 C 格式文件中获得一个缓冲区和一个长度变量。
【讨论】:
如果您能弄清楚如何使用资源文件,那将是首选方法。
将文本文件转换为可由编译器直接编译的文件并不难。这可能仅适用于小文件 - 您的编译器可能对单个字符串的大小有限制。如果是这样,一个微小的语法更改将使它成为一个可以正常工作的较小字符串的数组。
您需要通过在顶部添加一行、将每一行括在引号中、在每行末尾放置一个换行符、转义文本中的任何引号或反斜杠以及在末尾添加一个分号来转换文件.您可以编写一个程序来执行此操作,也可以在大多数编辑器中轻松完成。
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 ,其中包含一个包含文件全部内容的字符串。它之所以有效,是因为之间只有空格的连续字符串被连接成一个字符串。
【讨论】: