您的位置:首页 > 编程语言 > C语言/C++

CFile处理(读取路径文件内容,保存在表里面)

2016-03-30 10:11 921 查看
wstring str = CT2W(strPath);
str = str.substr(0, str.find_last_of(L".", str.length())) + wstring(CT2W(strExName));

CFileStatus fileStatus;
if(!CFile::GetStatus(W2CT(str.c_str()), fileStatus))
{
return;
}

CFile fileEx;
if(!fileEx.Open(W2CT(str.c_str()), CFile::modeRead))
{
throw CEMRException(L"不能打开指定文件,加载失败!");
}

WORD wHeader = 0;
fileEx.Read(&wHeader, sizeof(WORD));
if(wHeader != UNICODE_HEADER) fileEx.SeekToBegin();

size_t nFileLen = static_cast<size_t>(fileEx.GetLength());
array_ptr<BYTE> spBuffer(new BYTE[nFileLen + 1]);
memset(spBuffer.get(), 0, nFileLen + 1);
fileEx.Read(spBuffer.get(), static_cast<UINT>(nFileLen));

fileEx.Close();

array_ptr<XMLCh> spWBuffer;
if(wHeader != UNICODE_HEADER)//ANSI转换为双字节
{
spWBuffer.reset(XMLString::transcode(reinterpret_cast<char*>(spBuffer.get())));
}
else
{
spWBuffer.reset(reinterpret_cast<XMLCh*>(spBuffer.release()));
}

wstring strMsg = L"";
wstring strClientXml = CEMRClient::Instance().GetClientInfoX();

if(strExName.MakeLower() == _T(".txt"))
{
CHECK_THROW_PROXY(CHtmlTemplateProxy::SaveNoteInfo(strClientXml, lngID, spWBuffer.get(), strMsg));
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C++ 代码