mfc中的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);
}
I am using CEdit with the property of Multiline.My objective is to retrieve the individual line and place it in my CStringArray.
While retrieving the line using GetLine , I have to know the string length of that line.
How to get this?
I tried the function GetLineLength() but that will return the size of the entire line rather than the specified text.
I pasted the code that i have implemented so far:
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);
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
但你需要知道整条线的长度,不是吗?
我不会将缓冲区定义为 TCHAR 数组,而是定义为 CString,然后对其执行
GetBuffer()
操作。检查 CEdit::GetLineCount
它似乎或多或少能满足您的需要。
编辑
我刚刚编写了以下测试,它非常适合我:
也许您忘记将缓冲区长度添加到
ReleaseBuffer()
中?But you need to know the length of the whole line, don't you?
I would not define the buffer as an array of TCHARs, but as a CString, then do
GetBuffer()
on it.Check the example in CEdit::GetLineCount
It seems to do more or less what you need.
Edit
I've just written the following test, and it works perfectly for me:
Maybe you are forgetting to add the buffer length to
ReleaseBuffer()
?