FEMRP数据文件解决方案

上一篇 / 下一篇  2007-08-23 18:11:27 / 个人分类:FEMRP

        在有限元研发平台FEMRP的编写和使用中都涉及到数据文件的输入和输出.文件名和路径的确定是需要考虑的问题之一.无论是测试程序产生的临时数据文件,还是计算过程和结果文件,我们都希望它们的文件名都尽量一致,只在后缀上有所区别,或在主文件名上增加一些字符.这样相关的文件名相似,便于管理和使用.而且,这些文件都应该与数据文件同属一个路径.FEMRP中通过一个函数SetDataName从数据文件名分解出路径,文件名,扩展名,由这些字符串构成一个结构FileName. FEMRP通过对FileName的操作,即可按我们的要求生成各类数据文件名,
        FileName的定义如下:

typedef struct FILE_NAME{
 string  DataFile;                //数据文件全名
 string  DataFilePath;        //路径
 string  RealFileName;     //数据文件名
 string  PreName;              //路径+数据文件名
 string  Ext;                          //扩展名
} FileName;

       SetDataName函数:

FileName SetDataName( const string& totalfilename )
{
        FileName res;

        res.DataFile = totalfilename;

       int len = totalfilename.length();
       int dotpose = totalfilename.find_last_of('.');
       res.Ext = totalfilename.substr(dotpose+1,len-dotpose-1);
 
       int stickpose = totalfilename.find_last_of('\\');
       res.DataFilePath = totalfilename.substr(0,stickpose+1);
       res.RealFileName = totalfilename.substr(stickpose+1,dotpose-stickpose-1);

       res.PreName.append(res.DataFilePath);
       res.PreName.append(res.RealFileName);

       return res;
}

应用举例:  若一数据文件名为:   c:\femrp\example\test1\test1.pmg,则经过分解后FileName结构各字符串值为: 

filename =  "c:\femrp\example\test1\test1.pmg";
FileName res = SetDataName( filename );

res.DataFile                 "c:\femrp\example\test1\some.pmg"
res.DataFilePath        "c:\femrp\example\test1"
res.RealFileName     "some"
res.PreName              "c:\femrp\example\test1\some"
res.Ext                           "pmg"

如果想构造一个后缀为"txt"的数据文件,则:

string temp = res.PreName;
temp.append(".txt");

扩展名Ext用于判断文件类型,路径名DataFilePath用于确定数据文件位置.


TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar