C++ 在应用程序中合并文本文件?

C++ 在应用程序中合并文本文件?,c++,file,import,text-files,C++,File,Import,Text Files,无论如何,我是否可以将一个大约700KBs的相当大的文本文件合并到程序本身中,这样我就不必将文本文件一起发送到应用程序目录中?这是我第一次尝试这样做,我不知道从哪里开始 非常感谢您的帮助:根据您所在的平台,您很可能能够将文件嵌入某种资源容器中 如果您是在Windows平台上编程,那么您可能需要查看资源文件。您可以在此处找到基本介绍: 以下是更详细的信息: 如果您能弄清楚如何使用资源文件,那将是首选方法 将文本文件转换为可由编译器直接编译的文件并不困难。这可能只适用于小文件-编译器可能对单个字符串

无论如何,我是否可以将一个大约700KBs的相当大的文本文件合并到程序本身中,这样我就不必将文本文件一起发送到应用程序目录中?这是我第一次尝试这样做,我不知道从哪里开始


非常感谢您的帮助:

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

如果您是在Windows平台上编程,那么您可能需要查看资源文件。您可以在此处找到基本介绍:

以下是更详细的信息:


如果您能弄清楚如何使用资源文件,那将是首选方法

将文本文件转换为可由编译器直接编译的文件并不困难。这可能只适用于小文件-编译器可能对单个字符串的大小有限制。如果是这样的话,一个小小的语法更改将使它成为一个较小字符串的数组,这样就可以正常工作

您需要通过在顶部添加一行、将每行括在引号内、在每行末尾添加换行符、转义文本中的任何引号或反斜杠以及在末尾添加分号来转换文件。您可以编写一个程序来实现这一点,也可以在大多数编辑器中轻松实现

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

这将生成一个变量文本,其中包含一个包含文件全部内容的字符串。它之所以有效,是因为只有空格的连续字符串被连接成单个字符串。

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

+1用于系统资源处理。在MaOS上考虑为应用程序使用.app表单。On*nix系统在您的框架中寻找一个资源处理程序:其他人可能已经完成了这项工作……如果您从未做过,现在就做。然后不要在生产环境中使用它。但这是一个非常简单的代码生成入门,没有理由不尝试它。我从来没有对文本文件做过这样的操作,但我对中等大小的数据表做过。@Mark:我想你已经尝试过了,该指令是针对OP的。顺便说一句,我可能不应该强调上面的“请勿”。凡事要适度。总之,很好的总结。这将花费太多的时间,因为该文件有大约5k行文本,带有引号和其他内容。所以我可能会尝试使用资源。谢谢你的帮助:@Ahmed:你不能编辑这个文件!你是一个程序员,你写了一个工具来为你编辑它。这就是重点。