用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,但如果文件内容大
的话呢?