[英]How to separate a CString in MFC
我有一個這樣的字符串: DialogTitle = IDD_SETTING_DLG
在保存文件中(我已經將其存儲在名為m_TextArray
的數組中)。
現在,我想獲取"IDD_SETTING_DLG"
部分(或至少" IDD_SETTING_DLG"
)並將其存儲在CString
變量中。 我使用了Tokenize
方法,但是沒有用。
這是我的代碼:
BOOL CTab1::OnInitDialog()
{
UpdateData();
ReadSaveFile();
SetTabDescription();
UpdateData(FALSE);
return TRUE;
}
void CTab1::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Text(pDX, IDC_SHOWDES, m_ShowDes);
}
void CTab1::ReadSaveFile()
{
if (!SaveFile.Open(SFLocation, CFile::modeRead | CFile::shareDenyWrite, &ex))
{
ReadSettingFile();
}
else
{
for (int i = 0; i < 100; i++)
{
SaveFile.ReadString(ReadLine);
m_TextArray[i] = ReadLine.GetString();
}
}
}
void CTab1::SetTabDescription() //m_TextArray[2] is where i stored the text
{
Position = 0;
Seperator = _T("=");
m_ShowDes = m_TextArray[2].Tokenize(Seperator, Position);
while (!m_ShowDes.IsEmpty())
{
// get the next token
m_ShowDes = m_TextArray[2].Tokenize(Seperator, Position);
}
}
任何人的解決方案或提示將不勝感激。
由於您只是在尋找在令牌后面出現的字符串部分,因此無需使用Tokenize
。 只需找到令牌字符的位置(您的“ =
”),然后獲取所有信息:
void CTab1::SetTabDescription() //m_TextArray[2] is where i stored the text
{
CString separator = _T("=");
CString source = m_TextArray[2];
// Get position of token...
int position = source.Find(separator);
// If token is found...
if (position > -1 && source.GetLength() > position)
m_ShowDes = source.Mid(position + 1); // extract everything after token
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.