6 Star 3 Fork 0

甘才军 / CTestAutoJudge

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
myconfig.~cpp 1.95 KB
一键复制 编辑 原始数据 按行查看 历史
//---------------------------------------------------------------------------
#include<iostream>
#include<fstream>
#pragma hdrstop
#include "myconfig.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link"FileOpFun.lib"
TMyConfig::TMyConfig(AnsiString&filename,AnsiString&fieldNames,TXMLDocument*doc)
{
//检验扩展名是否为xml,若不是,抛出异常
if(!IsValidConfigFileName(filename))
{
throw new Exception("invalid filename");
}
if(!FileExists(filename))
{
CreateMyConfigFile(filename,fieldNames);
}
Doc=doc;
Doc->FileName=(WideString)filename.c_str();
Doc->Active=true;
}
AnsiString TMyConfig::GetValue(AnsiString fieldName)
{
if(!Doc->Active)
{
Doc->Active=true;
}
_di_IXMLNode Node=Doc->DocumentElement;
AnsiString v=Node->ChildNodes->Nodes[WideString(fieldName)]->Text;
return v;
}
void TMyConfig::SetValue(AnsiString fieldName,AnsiString value)
{
if(!Doc->Active)
{
Doc->Active=true;
}
_di_IXMLNode Node=Doc->DocumentElement;
Node->ChildNodes->Nodes[WideString(fieldName)]->Text=value;
}
bool TMyConfig::IsValidConfigFileName(AnsiString& filename)
{
return false;
}
void TMyConfig::Save()
{
if(!Doc->Active)
Doc->Active=True;
Doc->SaveToFile(Doc->FileName);
}
void TMyConfig::CreateMyConfigFile(AnsiString& filename, AnsiString& fieldNames)
{
using namespace std;
fstream fout;
fout.open(filename.c_str(),ios_base::out);
fout<<"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\" ?>"<<endl;
fout<<"<Parameters>"<<endl;
char *fields=new char[fieldNames.Length()+1];
strcpy(fields,fieldNames.c_str());
char*p=strtok(fields,"|");
while(p!=NULL)
{
fout<<"<"<<p<<">"<<"</"<<p<<">"<<endl;
p=strtok(NULL,"|");
}
fout<<"</Parameters>"<<endl;
fout.close();
}
TMyConfig::~TMyConfig()
{
Save();
}
C++
1
https://gitee.com/gancaijun/CTestAutoJudge.git
git@gitee.com:gancaijun/CTestAutoJudge.git
gancaijun
CTestAutoJudge
CTestAutoJudge
develop

搜索帮助

14c37bed 8189591 565d56ea 8189591