void CWVKeyAutoWRDlg::LoadSnKeyMap(void)
{
CFile mFile;
CString strL=_T("");
CString strFile = _T("WVKey_sn_map_record.txt");
CString strSnTemp, strKeyTemp;
if (mFile.Open(strFile, CFile::modeCreate|CFile::modeNoTruncate|CFile::modeReadWrite))
{
while(UNReadString(&mFile, strL))
{
AfxExtractSubString(strSnTemp, strL, 0, '\t');
AfxExtractSubString(strKeyTemp, strL, 1, '\t');
myMap.SetAt(strSnTemp, strKeyTemp);
}
}
}
BOOL CWVKeyAutoWRDlg::UNReadString(CFile *InputFile, CString &strReturn)
{
TCHAR tc;
CString strBuff = _T("");
strReturn = _T("");
while(InputFile->Read(&tc, sizeof(TCHAR)))
{
strBuff = tc;
if(_T("\n") != strBuff)
{
strReturn += strBuff;
}
else
{
return TRUE;
}
}
return FALSE;
}
内部函数AfxExtractSubString很好用:
从读出的一行字符串strL中查找第一个标示符的分割出的字符串strSnTemp
AfxExtractSubString(strSnTemp, strL, 0, '\t');
从读出的一行字符串strL中查找第二个标示符的分割出的字符串strKeyTemp
AfxExtractSubString(strKeyTemp, strL, 1, '\t');
另外的参照链接:
http://bbs.youkuaiyun.com/topics/380136094