Как отделить CString в MFC - PullRequest
0 голосов
/ 04 июня 2019

У меня есть такая строка: 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);
    }
}

Любое решение или подсказка будут очень признательны.

1 Ответ

1 голос
/ 04 июня 2019

Поскольку вы просто ищете часть строки, которая появляется после токена, нет необходимости использовать 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
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...