星光大道飞天组合:Visual C .NET编程讲座之三(3)
来源:百度文库 编辑:偶看新闻 时间:2024/04/26 01:29:33
Visual C++.NET编程讲座之三(3)
文档数据的读操作
对于上述过程,我们所做的仅仅是在文档类的Serialize函数中添加文档数据读取(加载)和存储的代码。需要说明的是,Serialize函数的参数ar是一个CArchive类的引用对象。CArchive类提供了"<<"和">>"运算符,分别可以向文档对象写入数据或从文档对象中读取数据。它们的含义与C++中的"<<"和">>"运算符相同,只不过CArchive支持更多的数据类型,如:CObject、CString等。除此之外CArchive类还提供ReadString和WriteString成员函数来读写文档中的一行文本。下面的过程用来将文档的文本内容读出并保存到一个字符串集合类对象中。
(1) 将解决方案管理器窗口切换到"类视图",展开所有的类,右击类名"CTextViewerDoc",从弹出的快捷菜单中选择"添加"->"添加变量",弹出"添加成员变量向导"对话框,在"变量类型"框中输入CStringArray,在"变量名"框中输入m_strContent,如图4所示。单击"完成"按钮。
CStringArray是"字符串集合类",它封装了CString数组对象的全部操作。类似的还有对BYTE、UINT、WORD和DWORD等类型的数组操作的集合类CByteArray、CUIntArray、CWordArray和CDWordArray。这些集合类都有相似的操作,如Add(添加)、RemoveAll(删除全部元素)、GetAt(获取指定数组下标的元素)等。
图4 添加成员变量
(2) 在CTextViewerDoc::Serialize函数中添加读取文档文本内容代码,如图5所示。
图5 添加的读取文档文本内容代码
代码中,ReadString是读取打开的文档的一行文本,当成功读出时,函数返回TRUE,当文本达到文档结尾时,函数返回FALSE。这样,通过while循环可以将文档的文本内容全部读取并保存到m_strContent中。
(3) 由于另一个文档打开时,需要将m_strContent中的内容清除,所以我们需要跟踪DeleteContents函数。在CTextViewerDoc类的属性窗口,单击"重写"按钮,在列表框中找到DeleteContents函数项,单击右边的空格后再单击右侧的下拉按钮,出现一个下拉列表,如图6所示。
图6 添加DeleteContents函数的重写
(4) 单击"<添加>DeleteContents",该函数的重写就添加好了。这样,框架在自动执行该函数时就会将自己添加在这个函数中的代码也会被执行。
(5) 在DeleteContents中添加如图7所示的加框代码。
图7 在DeleteContents函数中添加的代码
这就是文档文本内容的整个读取过程。需要说明的是,也可以将"m_strContent.RemoveAll();"语句直接添加在图5中的while循环语句之前,从而可以省略(5)和(6)的步骤。
文档数据的读操作
对于上述过程,我们所做的仅仅是在文档类的Serialize函数中添加文档数据读取(加载)和存储的代码。需要说明的是,Serialize函数的参数ar是一个CArchive类的引用对象。CArchive类提供了"<<"和">>"运算符,分别可以向文档对象写入数据或从文档对象中读取数据。它们的含义与C++中的"<<"和">>"运算符相同,只不过CArchive支持更多的数据类型,如:CObject、CString等。除此之外CArchive类还提供ReadString和WriteString成员函数来读写文档中的一行文本。下面的过程用来将文档的文本内容读出并保存到一个字符串集合类对象中。
(1) 将解决方案管理器窗口切换到"类视图",展开所有的类,右击类名"CTextViewerDoc",从弹出的快捷菜单中选择"添加"->"添加变量",弹出"添加成员变量向导"对话框,在"变量类型"框中输入CStringArray,在"变量名"框中输入m_strContent,如图4所示。单击"完成"按钮。
CStringArray是"字符串集合类",它封装了CString数组对象的全部操作。类似的还有对BYTE、UINT、WORD和DWORD等类型的数组操作的集合类CByteArray、CUIntArray、CWordArray和CDWordArray。这些集合类都有相似的操作,如Add(添加)、RemoveAll(删除全部元素)、GetAt(获取指定数组下标的元素)等。
图4 添加成员变量
(2) 在CTextViewerDoc::Serialize函数中添加读取文档文本内容代码,如图5所示。
图5 添加的读取文档文本内容代码
代码中,ReadString是读取打开的文档的一行文本,当成功读出时,函数返回TRUE,当文本达到文档结尾时,函数返回FALSE。这样,通过while循环可以将文档的文本内容全部读取并保存到m_strContent中。
(3) 由于另一个文档打开时,需要将m_strContent中的内容清除,所以我们需要跟踪DeleteContents函数。在CTextViewerDoc类的属性窗口,单击"重写"按钮,在列表框中找到DeleteContents函数项,单击右边的空格后再单击右侧的下拉按钮,出现一个下拉列表,如图6所示。
图6 添加DeleteContents函数的重写
(4) 单击"<添加>DeleteContents",该函数的重写就添加好了。这样,框架在自动执行该函数时就会将自己添加在这个函数中的代码也会被执行。
(5) 在DeleteContents中添加如图7所示的加框代码。
图7 在DeleteContents函数中添加的代码
这就是文档文本内容的整个读取过程。需要说明的是,也可以将"m_strContent.RemoveAll();"语句直接添加在图5中的while循环语句之前,从而可以省略(5)和(6)的步骤。
Visual C#.NET编程精粹150例...???有地址吗??
没有一点编程基础学习Visual C++.NET 如何开始
visual c ++.net
visual c++.net问题
visuaL c++.net
哪里能下载《Visual C#.NET应用编程150例》的电子书呢
想知道Visual C++.net是什么。想学这种编程技术要买哪种软件?
毕业设计需要C#,.net数据库编程,visual Studio .net2005方面的资料,谢谢提供!
新手入门,visual c++.net 求救
哪能下载visual c++.net
C#.Net 编程规范。
C#.Net语言编程
C语言,C++,Visual C,Visual C++,Visual C.#,Visual C.net是怎样的关系?
c#,c#.net,visual c#.net什么区别???
c#.net与visual c#.net有什么区别?
c#.NET编程高手来~~
Visual C++.net是什么语言的编缉器呀
关于visual c#.NET 的安装配置
在哪下载Visual C#.NET??
用多媒体学《Visual C#.NET》
关于 Visual Studio .NET 2003 [c++]设置?
visual C++.net在哪下载
Visual C++ 6.0 vs Visual C++.NET:鱼与熊掌?
visual c++6.0好还是visual c++.net好?