mdc中的CEdit文本检索

时间:2011-06-02 04:39:34

标签: mfc cstring cedit

我正在使用具有Multiline属性的CEdit。我的目标是检索单独的行并将其放在我的CStringArray中。

在使用GetLine检索行时,我必须知道该行的字符串长度。

如何获得这个?

我尝试了函数GetLineLength(),但它将返回整行的大小而不是指定的文本。

我粘贴了目前已执行的代码:

CEdit m_strMnemonicCode;
CStringArray strMnemonicArray;
LPTSTR temp =  new TCHAR[50];;
int nLineCount = m_strMnemonicCode.GetLineCount();
for(int ni = 0 ; ni < nLineCount ; ni++)
{
    int len = m_strMnemonicCode.LineLength(m_strMnemonicCode.LineIndex(ni));
            //m_strMnemonicCode.GetLine(ni, strText.GetBuffer(len), len);
    m_strMnemonicCode.GetLine( ni , temp );
    strMnemonicArray.Add(strText);
}

1 个答案:

答案 0 :(得分:1)

但你需要知道整条线的长度,不是吗? 我不会将缓冲区定义为TCHAR数组,但作为CString,然后对其执行GetBuffer()

检查CEdit::GetLineCount

中的示例

似乎或多或少地做了你需要的东西。

修改
我刚刚编写了以下测试,它对我来说非常适合:

int lc = m_Edit.GetLineCount();    

CString strLine;
CStringArray arr;

for (int i = 0; i < lc ; i++)
{
    int len = m_Edit.LineLength(m_Edit.LineIndex(i));
    m_Edit.GetLine(i, strLine.GetBuffer(len), len);
    strLine.ReleaseBuffer(len);

    arr.Add(strLine);
}

也许您忘记将缓冲区长度添加到ReleaseBuffer()