如何把单文档窗口中的文本内容读到字符串数组中

来源:百度知道 编辑:UC知道 时间:2024/05/27 11:38:54
用MFC创建单文档窗口,最后一步选择继承CEditView,这样就直接实现了简单的记事本功能,
我现在想把打开的文本内容放在一个字符串数组中进行中英文字符个数的统计,请问该如何
实现。我试过重写CFileOpen()
char szFilter[] = "文本文件(*.txt)|*.TXT|所有文件(*.*)|*.*||";
//前面的TXT Files(*.txt)为显示,后面的*.TXT为对应文件类型
CFileDialog FileDlg( TRUE, NULL, NULL, OFN_OVERWRITEPROMPT, szFilter ) ;
char zifu[100000];
if( FileDlg.DoModal() == IDOK )
{
CString PathName = FileDlg.GetPathName(); //得到所选文件的全部路径
CStdioFile File;
File.Open(PathName,CFile::modeReadWrite);
int filelen=File.GetLength();
char *pbuf=new char[filelen+2];
File.ReadHuge(pbuf,filelen);
pbuf[filelen]=NULL;
strcpy(zifu,pbuf);
delete []pbuf;
}
else return;
m_str=zifu;
然后在OnDraw()里用pDC->TextOut(0,0,m_str)把字符串显示出来,但是这样打开的文本回车符
不起作用,全都显示成一行。
所以我不想重写CFileOpen()了,想选择继承CEditView直接完美实现记事本功能。所显示的字
符应该在一块内存区域中,该如何得到这块区域的指针,或者说如何把显示的文本内容复制
到一个字符串数组以便于进行字符个数统计等其他操作?

一定要用TextOut吗? 不能用setwindowtext?
用replace把所有\n换成\r\n,然后用setwindowtext输出到文本框里面(即ceditview)
-----------------------
想获得文本框里面的内空则用getwindowtext
-----------------------
CEditView::GetEditCtrl See Also
CEditView Overview | Class Members | Hierarchy Chart | CEdit | CEditView::SetTabStops
Call GetEditCtrl to get a reference to the edit control used by the edit view.

CEdit& GetEditCtrl( ) const;
Return Value
A reference to a CEdit object.

不要放弃,要发扬程序员的精神,坚持就是胜利.
你试试用
File.Open(PathName,CFile::modeReadWrite|CFile::typeBinary );