mfc中的CEdit文本检索
我正在使用具有Multiline属性的CEdit。我的目标是检索单独的行并将其放置在我的CStringArray中 在使用GetLine检索该行时,我必须知道该行的字符串长度 如何得到这个 我尝试了函数GetLineLength(),但它将返回整行的大小,而不是指定的文本 我粘贴了迄今为止已实现的代码:mfc中的CEdit文本检索,mfc,cstring,cedit,Mfc,Cstring,Cedit,我正在使用具有Multiline属性的CEdit。我的目标是检索单独的行并将其放置在我的CStringArray中 在使用GetLine检索该行时,我必须知道该行的字符串长度 如何得到这个 我尝试了函数GetLineLength(),但它将返回整行的大小,而不是指定的文本 我粘贴了迄今为止已实现的代码: CEdit m_strMnemonicCode; CStringArray strMnemonicArray; LPTSTR temp = new TCHAR[50];; int nLineC
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);
}
ceditm_strmeniccode;
CStringArray-strmnemonic阵列;
LPTSTR温度=新TCHAR[50];;
int nLineCount=m_strMnemonicCode.GetLineCount();
对于(int-ni=0;ni
但是你需要知道整行的长度,不是吗?我不会将缓冲区定义为一个tchar数组,而是一个CString,然后对其执行
GetBuffer()
请检查中的示例
它似乎或多或少地满足了你的需要
编辑我刚刚编写了以下测试,它非常适合我:
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);
}
int lc=m_Edit.GetLineCount();
斯特林;
cstringarr;
对于(int i=0;i
也许您忘记了将缓冲区长度添加到
ReleaseBuffer()
?,但您需要知道整行的长度,不是吗?我不会将缓冲区定义为一个tchar数组,而是一个CString,然后对其执行
GetBuffer()
请检查中的示例
它似乎或多或少地满足了你的需要
编辑我刚刚编写了以下测试,它非常适合我:
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);
}
int lc=m_Edit.GetLineCount();
斯特林;
cstringarr;
对于(int i=0;i
也许您忘记了将缓冲区长度添加到
ReleaseBuffer()
?以您的方式,CString包含该行的限制大小,因此它将像指定的文本+垃圾值一样在末尾打印。例如:在第一行文本中:karthik,那么CString包含karthik;kajsdf;aksjdfaskjdfas;kdjfsalkj;这就是输出的方式。这种情况只适用于多行样式。我刚刚编辑了我的答案,添加了一些适合我的代码。在您的方式中,CString包含该行的限制大小,因此它将像指定的文本+垃圾值一样打印。例如:在第一行文本中:karthik,那么CString包含karthik;kajsdf;aksjdfaskjdfas;kdjfsalkj;这就是输出的方式。这种情况只适用于多行样式。我刚刚编辑了我的答案,添加了一些适合我的代码