用c++来解析文本文件看起来非常简单,如果让你解析一个如下的一个文件test.txt文件,你会怎么处理?
[file]
filename = knight.pdf
filename = eng.pdf
[size]
length = 111,111 bytes
length = 22,333 bytes
很简单的一个文本文件,file和size一一对应,要解析这类文本首先我要明确自己的步骤:
1、打开文件,并把文件内容读取到内存中。
2、对文件的每一行进行分析,并把我所需要的文件和大小相对应。
很easy?来看看怎么做吧
首先,我要定义一个存储文本信息的类用来存储信息
class FileInfo
{
public:
FileInfo()
{
fileName = "";
length =0;
}
FileInfo(AnsiString fileName,long length)
{
this->fileName = fileName;
this->length =length;
}
AnsiString getFileName()
{
return fileName;
}
void setFileName(AnsiString fileName)
{
this->fileName = fileName;
}
long getLength()
{
return length;
}
void setLength(long length)
{
this->length = length;
}
private:
AnsiString fileName;//文件名
long length;//长度
}
这个类它有两个成员变量。
行了,我有存储对应数据的类了,通过文件我知道一点我要存储的是一个FileInfo类列表,因此定一个vector<FileInfo>的变量来存储这些信息。读取
的文件内容该怎么存放呢?申请一块内存,就这么办,使用new 还是使用
VirtualAlloc()?文件内容小的时候我可以选择使用new,但如果文件内容大
的话呢?