首页 主任信箱 联系我们  
   VB教学课件
 

第 十六 讲

基本课题:记事本管理功能的设计(二)

授课日期

04.10.28

04.10.28

授课班级

03级计算机5、6班

03级计算机7、8班

教 学 目 的 与 要 求:

本讲补充数据文件的有关知识,要求同学们掌握顺序文件的打开、读写和关闭操作。

教 学 的 重 点、难 点:

重点、难点: 用对话框实现记事本的管理功能

对 教 材 的 处 理 和 意 见:

以教材为主,联系实际情况及时做补充


四 文件系统(补充)

数据文件的类型:

1.顺序型:连续存放文本文件;

记录:计算机处理数据的基本单位,它是由若干个相互关联的数据项组成。

2.随机型:用于有固定长度记录结构的文本数据或者二进制数据;

3.二进制型:二进制文件的数据是以二进制形式保存;

文件操作的一般步骤:打开文件——>读写文件――>关闭文件

(一) 顺序文件

1.顺序文件的打开:

格式:Open 文件名 For {Input| Output| Append} As 文件号

说明:

Input:打开一个文件,将对该文件进行读操作。

Output:在磁盘上创建一个新的顺序文件,文件打开后文件指针位于文件开头,准备向文件写入数据,磁盘上的同名文件将被覆盖。

Append:用来打开或创建一个新的顺序文件,文件打开后文件指针位于文件的末尾,准备向文件的尾部追加式写入数据。若磁盘上没有该文件,则创建一个新文件。

文件号:用来标识打开文件的文件句柄,必须是1到511之间的整数。打开的文件将通过<文件号>来进行读写操作。

如:要打开C:\VB目录下一个文件名为SCORE的文件,供写入数据,指定文件号为#1,则命令应为:Open “C:\VB\SCORE” For Output AS #1

2.顺序文件的写入:

写文件的语句有两种:

(1)Print#文件号, 数据

数据:输出列表,指[{Spc(n)|Tab[(n)]}][表达式列表][;|,]

例7 利用Print#语句把数据写入文件。

Open "L:11.doc" For Output As #1 '打开文件供输出

Print #1, "This is a test"

Print #1, '输出一个空行

Print #1, "Zone 1"; Tab(20); "Zone 2"

Print #1, "Hello"; " "; "World" '用空格分隔字符串

Print #1, Spc(5); "5 leading; spaces" '先输出5个前导空格,再输出字符串

Print #1, Tab(10); "Hello" '在第10列上输出字符串

Close #1 '关闭文件

在实际应用中,经常把一个文本框的内容以文件的形式保存在磁盘上,并有下列两种方法。假定文本框的名称为txtTest,文件名为11.doc。

方法1:把整个文本框的内容一次性地写入文件。

Open "L:\11.doc" For Output As #1

Print #1, TXTTEST.Text

Close #1

方法2:把整个文本框的内容一个字符一个字符地写入文件。

Open "L:\11.doc" For Output As #1

For i = 1 To Len(TXTTEST.Text)

Print #1, Mid(TXTTEST.Text, i, 1);

Next i

Close #1

(2)Write#文件号,数据

基本上与Print #语句相同,区别在于Write#是以紧凑格式存放,即在数据项之间插入“,”,并给字符串加上双引号。

例:Write #1,”One”,”Two”,123

结果:”One”,”Two”,123

注意:Print #常与Line Input #配合使用;Write #语句常与Input #配合使用。

3.顺序文件的关闭:

Close 文件号1[,文件号2,…]

4.顺序文件的读取:

读顺序文件的语句有下列三种:

(1)Input # 文件号,变量列表

功能:从文件中读出数据,并将读出的数据分别赋给指定的变量。

注意:为了能够用Input # 将文件中的数据正确地读出,在将数据写入文件时,要使用Write #语句而不是使用Print#语句。

(2)Line Input#文件号 ,字符串变量

功能:从文件中读出一行数据,并将读出的数据赋给指定的字符串变量。

注意:读出的数据中不包含回车符及换行符。

(3)Input$ (读取的字符数,#文件号)

调用该函数可以读取指定数目的字符。

与读文件(包含随机文件,二进制文件)有关的的重要函数有两个:LOF和EOF函数。

LOF函数:返回某文件的字节数。

如:LOF(1)返回#1文件的长度,如果返回值为0,表示该文件是一个空文件。

EOF函数:返回一个表示文件指针是否达到末尾的值。当到文件末尾时,值为True,否则值为False。对于顺序文件用EOF函数测试是否到文件尾。

将一个文本文件的内容读入文本框的方法:

假定文本框名称为txtTest,文本文件名为F:\11.doc

方法一:把文本文件的内容一行一行地读入文本框。

TXTTEST.Text = " "

Open "L:\11.txt" For Input As #1

Do While Not EOF(1)

Line Input #1, inputdata

TXTTEST.Text = TXTTEST.Text + inputdata + vbCrLf

Loop

Close #1

方法二:把文本文件的内容一次性读入文本框。

TXTTEST.Text = " "

Open "L:\11.txt" For Input As #1

TXTTEST.Text = Input(LOF(1), 1)

Close #1

方法三:把文本文件的内容一个字符一个字符地读入文本框。

Dim inputdata As String ‘* 1

TXTTEST.Text = " "

Open "L:\11.txt" For Input As #1

Do While Not EOF(1)

Input #1, inputdata

TXTTEST.Text = TXTTEST.Text + inputdata

Loop

Close #1

(二)随机文件

1.随机文件的打开与关闭

打开:Open 文件名 [for Random]As 文件号 Len=记录长度

注意:可用Len()函数返回记录长度。

2.随机文件的读写操作

1) 把记录读入变量:Get #文件号,记录号, 变量名

功能:从磁盘文件将一条由记录号指定的记录内容读入变量中。

注意:记录号是大于1的整数,表示对第几条记录进行操作。如果忽略记录号,则表示读出当前记录后的那条记录。

2) 把数据写入随机文件中:Put #文件号,记录号, 变量名

功能:将一个记录变量的内容写入所打开的磁盘文件中指定的记录位置处。

注意:记录号是大于1的整数,表示写入的是第几条记录。如果忽略记录号,则表示在当前记录后插入一条记录。

3) 添加记录:记录数=文件记录数+1

4) 删除记录:拷贝至新文件+删除老文件

作业:课本P253 例12-8

(三)二进制文件

二进制文件与随机文件类似,惟一不同是:不必限制于固定长度,可以用喜欢的方式来存取文件。

1.建立和打开二进制文件:

Open 文件名 For BinaryAs文件号

2.读写二进制文件:

Get#文件号,字节数, 变量名

Put#文件号,字节数, 变量名

注意:

Seek(<文件号>)函数用来返回当前文件指针的位置;

Seek语句(Seek<文件号>,<字节数>)用来将文件指针定位到<字节数>处。

3.关闭二进制文件:

Close#文件号

例9 编写一个复制文件的程序

Private Sub Form_Load()

Dim char As Byte

Dim filenum1, filenum2 As Integer

filenum1 = FreeFile

'打开源文件

Open "c:\student.dat" For Binary As #filenum1

filenum2 = FreeFile

'打开目标文件

Open "C:\student.bak" For Binary As #filenum2

Do While Not EOF(filenum1)

'从源文件读出一个字符

Get #1, , char

'将一个字节写入目标文件

Put #2, , char

Loop

Close #filenum1

Close #filenum2

End Sub

五记事本文档管理功能的实现

打开上一讲的文本编辑器

添加公共对话框控件,设置其属性并编写文件主菜单中的打开、新建和保存功能的代码。

五 RichTextBox控件简介

RichTextBox 控件不仅允许输入和编辑文本,同时还提供了标准 TextBox 控件未具有的、更高级的指定格式的许多功能。

语法

RichTextBox

说明

RichTextBox 提供了一些属性,对于控件文本的任何部分,用这些属性都可以指定格式。为了改变文本的格式,首先要选定它。只有选定的文本才能赋予字符和段落格式。使用这些属性,可把文本改为粗体或斜体,或改变其颜色,以及创建上标和下标。通过设置左右缩进和悬挂式缩进,可调整段落的格式。

RichTextBox 控件能以 rtf 格式和普通 ASCII 文本格式这两种形式打开和保存文件。可以使用控件的方法(LoadFileSaveFile)直接读写文件,或使用与 Visual Basic 文件输入/输出语句联结的、诸如 SelRTFTextRTF 之类的控件属性打开和保存文件。

通过使用 OLEObjects 集合,RichTextBox 控件支持对象的嵌入。插入到控件中的每个对象,都代表 OLEObject 对象。用这样的控件,就可以创建包含其它文档或对象的文档。例如,可创建这样的文档,它有一个嵌入的 Microsoft Excel 电子数据表格、或 Microsoft Word 文档、或其它已在系统中注册的 OLE 对象。为了把一个对象插入到 RichTextBox 控件中,只需简单地拖动一个文件(例如 在Windows 95“资源管理器”中的拖动),或拖动的是另一应用程序(如 Microsoft Word)所用文件的一个突出显示的区域,然后将所拖内容直接放入控件。

RichTextBox 控件支持 OLE 对象的剪贴板和 OLE 拖/放操作。从剪贴板中粘贴进一个对象时,它被插在当前插入点处。一个对象被拖放到控件时,插入点将跟踪着鼠标光标的移动,直至鼠标按钮释放时该对象即被插入。这种行为和 Microsoft Word 的一样。

使用 SelPrint 方法,可以打印 RichTextBox 控件的全部或部分文本。

因为 RichTextBox 是一个数据绑定控件,通过 Data 控件可以把它绑定到 Microsoft Access 数据库的 Binary 或 Memo 字段上,也可把它绑定到具有相同容量的其它数据库字段上(例如 SQL 服务器中的 TEXT 数据类型的字段)。

标准 TextBox 控件用到的所有属性、事件和方法,RichTextBox 控件几乎都能支持,例如 MaxLength、MultiLineScrollBars、SelLength、SelStartSelText。对于那些可以使用 TextBox 控件的应用程序,也可以很容易地使用 RichTextBox 控件。而且,RichTextBox 控件并没有和标准 TextBox 控件一样具有 64K 字符容量的限制。

使用 RichTextBox 控件


 

第一讲 概述
第二讲 集成开发环境、创
建、发布

第三讲 基本数据类型、常
量与变量

第四讲 运算符和表达式、
常用内部函数
第五讲 顺序、分支结构
第六讲 循环结构
第七讲 数组
第八讲 过程与函数调用
第九讲 VB常用控件介绍(
一)
第十讲 VB常用控件介绍(
二)
第十一讲 VB常用控件介绍
(三)
第十二讲 VB常用控件介绍
(四)
第十三讲 简易记事本的编
辑功能设计(一)
第十四讲 简易记事本编辑
功能设计(二)
第十五讲 记事本管理功能
设计(一)
第十六讲 记事本管理功能
设计(二)
第十七讲 计算器设计
第十八讲 补充:鼠标、键
盘事件
第十九讲 实现图片浏览器
第二十讲 简单贺卡设计与
绘图操作(一)
 
潍坊职业学院信息工程系网络中心制作