VB教程(第2版)第10章 文件
合集下载
第10章 数据文件
3.设置控件属性
4.编写程序代码
a.代码分析 课堂任务“摇奖程序”程序代码设计较为简单,要求通过 DriveListBox控件、DirListBox控件和FileListBox实现对盘符、 文件夹和文件的选择,最终实现文件的数据的输入,单击 “摇奖”按钮,程序将从数据输入文件中开始抽取摇奖数据, 并不断显示所抽取的摇奖数据,单击“停止”,程序将在 Textbox控件的文本框内显示摇奖结果。程序代码段应包含 摇奖按钮事件、停止按钮事件、窗体加载事件、盘符改变事 件、时间控制事件和目录改变事件
5.归纳与提高 一般情况下,驱动器列表框控件DriveListBox、目录列表 框控件DirListBox与文件列表框控件FileListBox三种控件经常 一起工作。而要使这三个控件协同工作也很简单,用户只要 为驱动器列表框的Change事件建立一个过程,当用户选择新 的驱动器时就会执行这个事件过程,这个过程将改变目录列 表框的路径以符合新选择的驱动器;同时,用户再为目录列 表框的Change事件建立一个过程,当用户选择新的目录时激 发该事件,并改变文件列表框以符合新的目录路径。通过上 述的两个过程,三个控件就可以同步工作了。
‘停止
‘窗体加载 ‘计时器停止
‘盘符的改变事件发生时 ‘更改相应目录wjj的路径
‘产生1到cc间的随机数 ‘text1中显示number(i)的内容
‘更改文件列表wj的路径
5.课后练习:
练习1:
在理解掌握本课课业设计的基础上,独立完成“摇奖程序”。
b.具体代码分析
‘通用声明处定义的变量,在每个过程中都有效 Dim Cc As Integer ‘设置参加摇奖的人数变量cc ‘设置用于保存参加摇奖的各人的资料(比如姓名或号码 )的数组变量 Dim Number(100) As String ‘摇奖按钮事件 Private Sub Command1_Click() FileName = wj.Path & "\" & wj.FileName ‘变量FileName中得到包含输入 数据的文件名 ‘打开文件FileName,文件的内容通过1号输入缓冲区输入 Open FileName For Input As #1 For i = 1 To 100 ‘从1号缓冲区中输入文件中的第i行至变量number(i)中 Line Input #1, Number(i) If EOF(1) Then Exit For ‘若文件结束,则退出循环 Next Close ‘关闭文件 Cc = i ‘参加摇奖的总数为cc Timer1.Enabled = True ‘开始摇奖 End Sub
VB教程 第10,11,12课
VB教师 办公室:综合楼203
21
教师:VB教师 可视化编程应用基础——Visual Basic
Thank you !
卫生值勤:第4周
教师:VB教师 可视化编程应用基础——Visual Basic
ftp://192.168.21.28 登录名:stu
课程名称
可视化编程应用基础 ——Visual Basic
VB教师 办公室:综合楼203
2
VB教师 办公室:综合楼203
3
VB教师 办公室:综合楼203
4
1、什么是类、对象、属性、事件、方法? 2、消息对话框格式? 3、给按钮添加事件,使得点击按钮出现消息框?
要点 回顼
4、回顾什么是顺序结构?
13
变量定义方法
定义格式: dim 变量 as 数据类型 举例: dim x as integer dim y as single dim s as string dim b as Boolean
VB教师 办公室:综合楼203
14
变量的赋值
赋值格式: 变量名 = 数据 举例: Name =“张三” Age = 16 A =3 B =4 C =A+B B = B+1
9
控件命名
标签(Label)
命令按钮 (CommandButton)
文本框 (TextBox)
一般约定:
控件前缀或控件前缀简称+自定义名
lblFS,LabelFS txtJF,TextJF cmdTC,CommandTC
VB教师 办公室:综合楼203
10
数据类型
• 字符串类型
• 整数类型 • 实数类型 • 布尔类型
String
二级VB 第10章 菜单、工具栏、状态栏、多文档
1. 添加工具栏控件
(1) “工程→部件”,选Microsoft Windows Common
Controls 6.0
用 (2)
在窗体任意位置添加一个ImageList控件,名称默
认为ImageList1
(3) 用
在窗体上添加一个Toolbar控件(该控件自动位于菜
单栏的下面) ,其名称默认为Toolbar1。
MSComctlLib.Button)
End Select
OpenDoc
End Sub Private Sub Toolbar1_ButtonClick(ByVal Button As Select Case Button.Key Case “open” OpenDoc …… “打开”按钮的关键字为open,图像值为 1 '或Case 1,表示单击“打开”按钮
编辑菜单控件
如果菜单 控件的前面 没有内缩符 号“ · · · · ”, 表明该控件 建立的是主 菜单,否则 为菜单命令 或子菜单。
3 方法: 先通过菜单编辑器设计菜单,然后编写各菜单控件的 Click事件过程。
[例] 创建简易编辑器 (1) 设计菜单
(2) 设计界面
菜单下面绘制两条直线 ( 两个 Line 控件 ) ,一条为黑色,一条 为白色。 黑线的Y1和Y2属性设为0 白线的Y1和Y2属性设为10 文本框Text1: MultiLine设为True ScrollBars设为3
(3) 编写菜单控件的Click事件过程
10. 2 弹出菜单的设计
用PopupMenu方法可显示弹出式菜单
[对象.]PopupMenu 菜单控件名称
vb-10文件
数据项
二、文件种类
根据数据的使用 数据文件和程序文件 根据数据的编码方式 ASCII文件和二进制文件 根据数据的访问模式 顺序存取文件和随机存取文件、二进制存取文件
1.顺序文件
顺序文件(Sequential File)是普通的文本文件。顺 序文件中的记录按顺序一个接一个地排列。读写文件存取 记录时,都必须按记录顺序逐个进行。一行一条记录(一 项数据),记录可长可短,以“换行”字符为分隔符号。
例 编程将一文本文件的内容读到文本框
假定文本框名称为txtTest,文件名为MYFILE.TXT。可 以通过下面三种方法来实现。 方法1:一行一行读 txtTest.Text = "" Open "MYFILE.TXT" For Input As #1 Do While Not EOF(1) Line Input #1, InputData txtTest.Text = txtTest.Text +InputData+vbCrLf
Private Sub Form_Activate() Open "d:\file.dat" For Random As #1_ Len = Len(member) recordnum = LOF(1) / Len(member) End Sub
Private Sub cmdAdd_Click() With member .m_ID = txtID .m_Name = txtName .m_Dep = txtDep .m_Pay = Val(txtPay) End With recordnum = recordnum + 1 Put #1, recordnum, member CurrentID = recordnum txtID = "" txtName = "" txtDep = "" txtPay = "" txtID.SetFocus End Sub
vb10
4
10.1.2
• 常用事件: 常用事件:
目录列表框
Change事件
重新设置Path属性引发Change事件 重新设置Path属性引发Change事件 Path属性引发Change 注意:单击目录列表框中某一项目, 注意:单击目录列表框中某一项目,此项突出 显示,但并没改变Path值 显示,但并没改变Path值,只有双击才会改变 Path Path值 Path值.
16
(2)操作类型 (2)操作类型 Read: Read:只读 Write: Write:只写 ReadWrite: ReadWrite:读写皆可
10.3 顺序文件
文件名" [For 模式][Access 操作类型] Open "文件名" [For 模式][Access 操作类型] 锁定] [#]文件号 [Len=记录长度 记录长度] [锁定] As [#]文件号 [Len=记录长度] (3) 锁定 Shared(缺省 缺省) Shared(缺省) Lock Read Lock Write Lock Read Write
10
10.2
文件及其结构
文件:存储在外部介质上数据的集合。 文件:存储在外部介质上数据的集合。 按名存取 1.记录: 由若干个相互关联的数据项组成。 1.记录: 由若干个相互关联的数据项组成。 记录 例如:由学生的学习成绩信息组成的记录: 例如:由学生的学习成绩信息组成的记录:
学号 姓名 数学成绩 语文成绩 物理成绩 总分
14
10.2
文件及其结构
(3) ASCII码文件 ASCII码文件 数据是以ASCII码进行编码储存的。 数据是以ASCII码进行编码储存的。 ASCII码进行编码储存的 (4) 二进制文件(Binary File) 二进制文件(Binary 数据是以二进制格式进行编码保存的。 数据是以二进制格式进行编码保存的。
10.1.2
• 常用事件: 常用事件:
目录列表框
Change事件
重新设置Path属性引发Change事件 重新设置Path属性引发Change事件 Path属性引发Change 注意:单击目录列表框中某一项目, 注意:单击目录列表框中某一项目,此项突出 显示,但并没改变Path值 显示,但并没改变Path值,只有双击才会改变 Path Path值 Path值.
16
(2)操作类型 (2)操作类型 Read: Read:只读 Write: Write:只写 ReadWrite: ReadWrite:读写皆可
10.3 顺序文件
文件名" [For 模式][Access 操作类型] Open "文件名" [For 模式][Access 操作类型] 锁定] [#]文件号 [Len=记录长度 记录长度] [锁定] As [#]文件号 [Len=记录长度] (3) 锁定 Shared(缺省 缺省) Shared(缺省) Lock Read Lock Write Lock Read Write
10
10.2
文件及其结构
文件:存储在外部介质上数据的集合。 文件:存储在外部介质上数据的集合。 按名存取 1.记录: 由若干个相互关联的数据项组成。 1.记录: 由若干个相互关联的数据项组成。 记录 例如:由学生的学习成绩信息组成的记录: 例如:由学生的学习成绩信息组成的记录:
学号 姓名 数学成绩 语文成绩 物理成绩 总分
14
10.2
文件及其结构
(3) ASCII码文件 ASCII码文件 数据是以ASCII码进行编码储存的。 数据是以ASCII码进行编码储存的。 ASCII码进行编码储存的 (4) 二进制文件(Binary File) 二进制文件(Binary 数据是以二进制格式进行编码保存的。 数据是以二进制格式进行编码保存的。
第10章 VB常见错误类型和程序调试方法
10.3 程序调试方法
在设计或中断模式下,将鼠标移动到“工具”菜单上右击,在随后 出现的快捷菜单上选择“调试”命令,出现如图10-1所示的“调试” 工具栏。 下面重点介绍与程序调试有关的几个工具按钮的作用。
(1)切换断点
在程序代码中设置或取消断点,程序执行到该语句时停下来。 注意:设置断点的方法是在代码窗口中选择一条语句,单击“切换断 点”按钮或按F9键,该语句变为暗红色,即设置成功,程序中允许 设置多个断点。再次用同样的方法便取消断点。按Ctrl + Shift + F9组 合键清除所有断点。
返回
10.3 程序调试方法
调试程序是一件复杂的工程,不但要求程序员对系统设计结果非常 熟悉,思路清晰,更需要不断地在实践中积累经验。 这里程序调试的基本方法包括:中断模式调试、调试工具调试和编写 错误处理程序。重点介绍前两种方法。
1.中断模式
在VB集成开发环境中,程序有设计、运行和中断三种模式VB的标题 栏会列出当前的模式。在设计模式下,程序员可改变应用程序的设 计和代码,但所作不能改变对应用程序运行的影响;在运行模式下, 程序员可以监视应用程序的行为,但不能直接修改代码;中断模式可 以暂停应用程序的执行,
上一页 下一页 返回
10.3 程序调试方法
(2)逐语句与立即窗口 逐语句是指程序将逐个语句执行,一句一停。在逐语句执行时,用 户会看到正在执行的语句为黄色,同时出现一个“立即”窗口,用 户可以在“立即”窗口使用Print方法或问号(?)查看变量或表达式的 值,如图10 -2所示。 (3)逐过程 每单击一次“逐过程”按钮将执行一个过程或函数,同时也会出现 一个“立即”窗口。用户可以在“立即”窗口使用Print方法或问号(?) 查看变量或表达式的值。和逐语句相比,二者的不同之处在于逐过 程不跟踪到过程或函数内音f。
第10章-VB多文档界面与工具栏设计
对象. SaveFile(文件标识符[,文件类型])
☆☆ 第10章多文档界面与工具栏设计
17
2.常用格式化属性
格式化属性,可对该控件中选中的任何部分的文本使用不同的格式
分类
属性
值类型
说明
选中文本 字体、字号
字型
SelText SelStart SelLength SelFontName SelFontSize SelBold SelItalic SelUnderline SelStrikethru
End Sub
☆☆ 第10章多文档界面与工具栏设计
4
10.1 多文档界面设计
10.1.2 显示MDI窗体及其子窗体
显示任何窗体的方法为show,还有有关规则: (1)加载子窗体时,其父窗体会自动加载并显示;反之 则无。 (2)MDI窗体子窗体
1.创建 MDI 应用程序的菜单
2.多文档界面中的“窗口”菜单
☆☆ 第10章多文档界面与工具栏设计
6
10.1 多文档界面设计
(1) 显示打开的多个文档窗口 要在某个菜单上显示所有打开的子窗体标题,只需利用
菜单编辑器将该菜单的WindowList属性设置为True。 (2).排列窗口 利用Arrange方法进行层叠、平铺和排列图标。 形式: MDI窗体对象.Arrange 排列方式
MDI子窗体 标准窗体 MDI窗体
☆☆ 第10章多文档界面与工具栏设计
2
10.1.1 创建多文档界面应用程序
1.创建MDI窗体 用户要建立一个MDI窗体,可以选择“工程”菜单中的
“添加MDI窗体”命令,会弹出“添加MDI窗体”对话框, 选择“新建MDI窗体”或“现存”的MDI窗体,再选择“打 开”按钮。
☆☆ 第10章多文档界面与工具栏设计
17
2.常用格式化属性
格式化属性,可对该控件中选中的任何部分的文本使用不同的格式
分类
属性
值类型
说明
选中文本 字体、字号
字型
SelText SelStart SelLength SelFontName SelFontSize SelBold SelItalic SelUnderline SelStrikethru
End Sub
☆☆ 第10章多文档界面与工具栏设计
4
10.1 多文档界面设计
10.1.2 显示MDI窗体及其子窗体
显示任何窗体的方法为show,还有有关规则: (1)加载子窗体时,其父窗体会自动加载并显示;反之 则无。 (2)MDI窗体子窗体
1.创建 MDI 应用程序的菜单
2.多文档界面中的“窗口”菜单
☆☆ 第10章多文档界面与工具栏设计
6
10.1 多文档界面设计
(1) 显示打开的多个文档窗口 要在某个菜单上显示所有打开的子窗体标题,只需利用
菜单编辑器将该菜单的WindowList属性设置为True。 (2).排列窗口 利用Arrange方法进行层叠、平铺和排列图标。 形式: MDI窗体对象.Arrange 排列方式
MDI子窗体 标准窗体 MDI窗体
☆☆ 第10章多文档界面与工具栏设计
2
10.1.1 创建多文档界面应用程序
1.创建MDI窗体 用户要建立一个MDI窗体,可以选择“工程”菜单中的
“添加MDI窗体”命令,会弹出“添加MDI窗体”对话框, 选择“新建MDI窗体”或“现存”的MDI窗体,再选择“打 开”按钮。
VB习题解答
作用:在对象上输出信息 对象:窗体、图形框或打印机(Printer) ,省略对象在窗体上输出。 Spc(n)函数:插入n个空格,允许重复使用。 Tab(n)函数:左端开始右移动n列,允许重复使用。 ;(分号):光标定位上一个显示的字符后。 ,(逗号):光标定位在下一个打印区的开始位置处。 无 ;,时换行。 开始打印的位置是由对象的CurrentX和CurrentX属性决定, 缺省为打印对象的左上角0,0。 注意:Print方法在Form _Load事件过程中起作用,必须设置窗体的 AutoRedraw为True。
3.常用方法
[对象.]SetFocus:是把光标移到指定的文本框对象中。
4.文本框的应用 数据过滤
例2.7 要求输入合法的数字数据。当输入结束时(按Tab键),对于 输入正确的数据,显示正确信息;对输入的非数字数据,则响铃 (Beep)、显示错误信息、清除文本框中的内容,并使焦点重新回到文 本框。 • Text2_ LostFocus 当输入结束按Tab键时,该事件激发。 • IsNumeric(Text2):判断是否输入非数字数据。 • Text2.SetFocus:使焦点重新回到文本框。
例2.3
控件设置
默认控件名 标题 有关属性设置 Name Caption 颜色、对齐、 Form1 MousePointer=99,MouseIcon=Key04.ico 鼠标属性例 左对齐 Alignment=0, BorderStyle =1 Label1 居中 Alignment=1,BorderStyle =1 Label2 自动 AutoSize=True, WordWarp=False, BorderStyle =1 Label3 背景白 BackColor= &H00FFFFFF&, BorderStyle =0 Label4 前景红 ForeColor= &H000000FF&, BorderStyle =0 Label5
VB程序设计第二版第十章
第10章 文件操作
10.1 文件的基本概念 10.2 文件的打开与关闭 10.3 文件的读/写 10.3.1 相关概念和函数 10.3.2 顺序文件的读/写
1
10.1 文件的基本概念
文件指存储 / 记录在外部介质如磁盘磁带等 上的数据的集合。计算机中的数据都是以文件的 形式保存和处理的。
10.1.1 文件说明
Private Sub Form_Click() Close: ChDir "e:\vb" Open "teacher.txt" For Output Shared As #3 'shared前不能加Lock End Sub
示例4:打开当前文件夹下的随机文件hello.txt, 并指定文 号为4,相应Open语句(文件事先可不存在):
Private Sub Form_Click()
Open "e:\vb\test1.txt" For Input As #1 Len = 512 '#号可缺省
End Sub
示例2:打开当前文件夹下的顺序文件student.dat, 以便在 文件尾添加数据(Append, 文件事先可不存在),并指定文件 号为2,相应Open语句:
Private Sub Form_Click() Open "c:\data\classroom.dat" For Binary Access Read As #5 End Sub
10.2.2 关闭文件
Close语句---所有类型文件的关闭 功能 关闭已打开的文件,同时释放文件在打开时所分配的缓冲 区和文件号。 说明 close语句可同时关闭多个已打开的文件,多个文件号用 “,”号分隔。当不带文件号的close语句单独使用时,将关 闭所有已打开的文件。例:
10.1 文件的基本概念 10.2 文件的打开与关闭 10.3 文件的读/写 10.3.1 相关概念和函数 10.3.2 顺序文件的读/写
1
10.1 文件的基本概念
文件指存储 / 记录在外部介质如磁盘磁带等 上的数据的集合。计算机中的数据都是以文件的 形式保存和处理的。
10.1.1 文件说明
Private Sub Form_Click() Close: ChDir "e:\vb" Open "teacher.txt" For Output Shared As #3 'shared前不能加Lock End Sub
示例4:打开当前文件夹下的随机文件hello.txt, 并指定文 号为4,相应Open语句(文件事先可不存在):
Private Sub Form_Click()
Open "e:\vb\test1.txt" For Input As #1 Len = 512 '#号可缺省
End Sub
示例2:打开当前文件夹下的顺序文件student.dat, 以便在 文件尾添加数据(Append, 文件事先可不存在),并指定文件 号为2,相应Open语句:
Private Sub Form_Click() Open "c:\data\classroom.dat" For Binary Access Read As #5 End Sub
10.2.2 关闭文件
Close语句---所有类型文件的关闭 功能 关闭已打开的文件,同时释放文件在打开时所分配的缓冲 区和文件号。 说明 close语句可同时关闭多个已打开的文件,多个文件号用 “,”号分隔。当不带文件号的close语句单独使用时,将关 闭所有已打开的文件。例:
VB程序设计课件(全套)
在VB中,将反映对象的属性和行为封装在一起,是面向对 象编程的基本元素。
21
上一页
下一页
2.类的概念
本章目录
类是创建对象实例的模板,是同种对象的集合与抽象,它包 含所创建对象的属性描述和行为特征的定义。 例如,人类是人的抽象,一个个不同的人是人类的实例。各 个人具有不同的身高、体重等属性值和不同的行为。 在 VB中,工具箱上的可视图标是 VB系统设计好的标准控件 类。通过将控件类实例化,可以得到真正的控件对象,也就是 当在窗体上画一个控件时,就将类转换为对象,即创建了一个 控件对象,简称为控件。
25
上一页
下一页
事件
本章目录
2. 事件、事件过程和事件驱动 (1) 事件 事件就是发生在对象上的事情。同一事件,作用于不同的对 象,就会引发不同的反应,产生不同的结果。 例如,在学校,教室楼的铃声是一个事件,教师听到铃声就 要准备开始讲课,向学生传授知识;学生听到铃声,就要准备 听教师上课,接受知识;而行政人员对铃声可不于响应。 在VB中,系统为每个对象预先定义好了一系列的事件。 例如,单击 (Click) 、双击 (DblClick) 、改变 (Change) 、获 取焦点(GotFocus)、键盘按下(KeyPress)等。
9
上一页
下一页
VB功能特点
2 功能特点 1) 具有面向对象的可视化设计工具 2) 事件驱动的编程机制 3) 提供了易学易用的应用程序集成开发环境 4) 结构化的程序设计语言 5) 强大的数据库功能 6) Active技术 7) 网络功能 8) 多个应用程序向导 9) 完备的Help联机帮助功能
10
Visual Basic 程序设计简明教程
第一章 Visual Basic程序设计概述(2) 第二章 VB简单的程序设计(6) 第三章 VB语言基础(4) 第四章 基本的控制结构(8) 第五章 数组(5) 第六章 过程(4) 第七章 常用控件(2) 第八章 界面设计(2) 第九章 文件(2) 第十章 图形(1) 第十一章 数据库技术(自学) 第十二章 系统开发案例 (自学)
第10章 程序调试与错误处理
10.3 错误处理 例如:下面程序在立即窗口中显示VB系统中所有的错误 码及错误信息。
Private Sub Form_Click() For k = 1 To 32767 If Error$(k) <> "应用程序定义或对象定义错误" Then Debug.Print k , Error$(k) End If Next k End Sub
10.1 VB程序错误的类型
10.1 VB程序错误的类型 VB程序出现的错误可分为三大类:编译错误、运行错误 和逻辑错误。 1)编译错误 编译错误是由于编程人员未能正确构造程序代码而产生的 错误。编译错误主要包括语法错误和结构错误。
语法错误指:以不合法的方式将合法的符号组合在一起 而产生的错误。比如,键入的关键字不正确、遗漏了某 些必需的标点符号、括号、对象属性引用没有对象等。 结构错误指:语句结构不完整或结构交叉而引起的错误。 比如,For 语句没有Next与之对应;块If语句中包含ForNext语句,而Next在End If之后出现等情况。
10.1 VB程序错误的类型
例10.2 运行错误示例。程序用于打开一个文件。运行时, 在文本框中输入一个将要打开的文件名,若此文件不存在, 程序就会出现运行错误,如下图所示。要避免这个错误, 可在程序中加一个条件判断,若文件存在才打开。
10.2 程序调试
10.2 程序调试 VB集成开发环境提供了多种程序调试工具,主要包 括:设置断点、单步运行、监视窗口和立即窗口等,这里 主要介绍程序调试工具及调试方法和技巧。 程序调试工具栏如图所示:
10.2 程序调试
例10.3 程序结果输出到立即窗口示例。如下图所示,使用 Debug.Print将计算阶乘函数Fact(5)执行的中间结果输出 到立即窗口中。在立即窗口中,测试变量t、i在当前断点 处的值。
VB教程 第10章 高级程序设计
第10章 高级程序设计 章
(3)0pen方法 打开一个要播放的.avi文件。如果AutoPlay属性设置为 True,则只要打开该文件,控件就开始播放它。在关 闭.avi文件或设置Autoplay属性为False之前,它都将不断 重复播放。 它的话法如下: object.open.filename (4)Play方法 在Animation控件中播放.avi文件 (5)Stop方法 在Animation控件中终止播放.avi文件,当AutoPlay属性设置 为True时,试图使用Stop方法将导致错误。 (6)Close方法 使Animation控件关闭当前的打开的.avi文件
第10章 高级程序设计 章
第10章 高级程序设计 章
第10章 高级程序设计 章
10.1 多媒体应用程序开发 10.2 网络程序设计 10.3 与其他应用程序通信
第10章 高级程序设计 章
•10.1 多媒体应用程序开发 •10.1.1 多媒体控件简介 •10.1.2 多媒体控件常用的属性和方法 •10.1.3 利用多媒体播放歌曲 •10.1.4 制作一个 制作一个CD播放机 播放机 •10.1.5 使用 使用Animation控件 控件 •10.1.6 利用 利用API调用编写多媒体应用程序 调用编写多媒体应用程序
属性名 AutoEnable Enable Frame BackEnable PlayEnable StepEnable StopEnable 属性值 False True 1 True True True True
第10章 高级程序设计 章
3 )在窗体中添加一个Picture控件,它 的作用是显示给定的视频文件。把 Picture控件的句柄赋给MMControl控 件,视频文件的显示就会固定在 Picture控件中,否则就会由系统随机 的放置。 4 )编写程序代码
Visual Basic程序设计(理论篇 第二版)电子课件VB_CH10
10.1加载ActiveX控件
Visual Basic包括三种类型控件,分别是标准控件、 ActiveX控件和可插入的对象。 ActiveX是Microsoft的术语,他是一组包括控件、 DLL和ActiveX文档的组件,他通常是以动态连接 库形势存在,因此必须在一个叫容器的可独立执 行的软件中运行,比如VisualBasic,Internet Explorer等。 ActiveX 控件是 Visual Basic 工具箱的扩充部分。 在程序中加入 ActiveX 控件后,它将成为开发和 运行环境的一部分,并为应用程序提供新的功能。
【例10-2】为ImageList 控件添加图像 把ActiveX部件“ Microsoft Windows common controls 6.0”添加到工具箱中,并把ImageList 控件 放置到窗体上。由于ImageList 控件在运行时不可 见,所以不必考虑它在窗体上的位置。
设置ImageList 控件的属性
Button对象与 Buttons 集合
【例10-4】在设计时创建 Button按钮 1. 用鼠标右键单击 Toolbar 控件,并单击“属性”显 示出“属性页”对话框。 2. 在“通用”标签上,点击“图像列表”下拉列表框, 选中ImageList1,从而将工具栏与图像列表框控件 相关联。如图所示。
【例10-2】为ImageList 控件添加图像 3. 选择“图像”标签,单击“插入图片”按钮,出现 如图所示的“选定图像”对话框选择要插入的,如" BOOK01A.ICO",向ImageList 控件添加图像。索 引值自动为1。
设置ImageList 控件的属性
第10章 VB常见错误类型和程序调试方法
上一页 下一页 返回
10.3 程序调试方法
(2)逐语句与立即窗口 逐语句是指程序将逐个语句执行,一句一停。在逐语句执行时,用 户会看到正在执行的语句为黄色,同时出现一个“立即”窗口,用 户可以在“立即”窗口使用Print方法或问号(?)查看变量或表达式的 值,如图10 -2所示。 (3)逐过程 每单击一次“逐过程”按钮将执行一个过程或函数,同时也会出现 一个“立即”窗口。用户可以在“立即”窗口使用Print方法或问号(?) 查看变量或表达式的值。和逐语句相比,二者的不同之处在于逐过 程不跟踪到过程或函数内音f。
在“快速监视”对话框中,单击“添加(A)”按钮,可以把当前选中的 表达式或变量添加到监视窗口中。如果用户没有在代码窗口选中要 查看的表达式或变量就单击“快速监视”按钮,系统会弹出一个警 告框,提示没有选择监视对象。
上一页 下一页 返回
10.3 程序调试方法
(8)调用堆栈 在“调用堆栈”对话框显示一个调用所有活动过程的列表。活动过 程是指那些在应用程序中已经启动但还没有运行结束的过程。 注意:“调用堆栈”只能在断点执行方式下使用。它的图标按钮通常是 无效的(灰色),只有当执行到断点时该按钮才有效,单击它即可弹出 “调用堆栈”对话框。 例如,在某一应用程序Form Click ( )的过程中调用了通用sum过程, 当程序运行到断点时,单击“调用堆栈”按钮,即弹出“调用堆栈” 对话框,如图10-6所示。
上一页 下一页 返回
10.3 程序调试方法
(4)跳出 单击“跳出”按钮,跳出当前过程或函数。 (5)本地窗口 用于显示当前过程中所有变量的值。这些变量只是当前过程中定义 的局部变量,不包含全局变量。当程序的执行从一个过程转向另一 个过程时,本地窗口的内容也会发生变化。 单击“本地窗口”按钮,再逐语句或逐过程执行程序,就可以在 “本地”窗口上看到正在执行哪个过程以及该过程变量的当前值和 类型,如图10-3所示。
vb 10
应用程序
.vbp文件 .vbp文件
(若干)窗体模块 若干)
.frm文件 .frm文件
(若干)标准模块 若干)
.bas文件 .bas文件
(若干)类模块 若干)
.cls文件 .cls文件
……
若干事件过程(Sub) 若干事件过程(Sub) 自定义子程序过程(Sub) 自定义子程序过程(Sub) 自定义函数过程(Function) 自定义函数过程(Function)
vbp文件自定义子程序过程sub自定义函数过程function江南大学信息工程学院计算机基础课部vb教学1011模块供本窗体内的其他过程调用的自定义过程对象窗口代码窗口江南大学信息工程学院计算机基础课部vb教学1011模块标准模块中保存的过程都是自定义过程可被同一工程中的多个窗体模块共享还包含自定义类型的定义和全局公共变量的定义api函数的说明等
自定义子程序过程(Sub) 自定义子程序过程(Sub) 自定义函数过程(Function) 自定义函数过程(Function)
江南大学信息工程学院计算机基础课部—VB教学
10.1.1 模块
• 窗体模块
– 一个窗体为一个窗体模块 – 包括: 包括:
• 窗体及窗体中各个控件对象的属性设置以及相关的说明 窗体及窗体中各个控件对象的属性设置以及相关的说明 • 用于处理发生在窗体中的各个对象的事件过程 用于处理发生在窗体中的各个对象的事件过程 • 供本窗体内的其他过程调用的自定义过程 供本窗体内的其他过程调用的自定义过程
• 事件过程
– 事件被触发时,执行相应的事件过程 事件被触发时, – 事件过程为窗体模块的私有(Private)过程 事件过程为窗体模块的私有 过程
• 在本窗体有效
江南大学信息工程学院计算机基础课部—VB教学
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
FileSystemObject.GetFolder(文件夹路径) FileSystemObject.GetFile(文件路径)
例如,访问“考试成绩.txt”文件:
Dim Fso As New FileSystemObject Dim F1 As File Set F1 =Fso.GetFile("c:\考试成绩.txt")
10.1.3 二进制文件
使用Open 语句打开文件,Close语句关闭文件。二进制访问中的 Open 语句 没有指定记录长度,即使指定记录长度也被忽略。 语法: Open 文件名 For Binary As [#]文件号 二进制存取方式与随机存取方式一样,使用Get #语句和Put #语句进行读写 操作。二进制存取方式与随机存取方式的不同在于:二进制存取可以定位到文 件的任一字节位置即定位到字符;二进制存取从文件中读出数据或向文件中写 入数据的长度取决于Get #或Put #语句中变量的长度。 语法: Get [#] 文件号,[字节位置序号],变量名 Put [#] 文件号, [字节位置序号], 变量名 例如,从“考试成绩.txt”文件的指定位置40,写入一个字符串 “2003010106”: Dim Data As Single Dim S1 As String Open "c:\考试成绩" For Binary As #1 S1 = "2003010106" Put #1, 40, S1
10.1 数据文件
2. 文件访问类型 在VB中有三种文件访问的类型:顺序访问文件、随机访问文件和二进制访 问文件。 (1)顺序访问文件 (2)随机访问文件 (3)二进制访问文件 VB提供的大部分语句和函数对于三种文件类型都适用。表10.1列出可用于 三种文件访问类型的语句和函数。 表10.1 语句和函数
10.2 FSO对象模型
FSO对象模型包含在Scripting类型库(Scrrun.Dll)中,必须引用 “Microsoft Scripting Runtime”对象模块才能使用FSO对象模型。选择“工 程”菜单“引用”菜单项,打开“引用”对话框,再选择“Microsoft Scripting Runtime”复选框,如图10.3所示。
语句和函数 Close Get Input() Input # Line Input # Open Print # Put Type...End Type Write # 顺序型 √ √ √ √ √ √ √ 随机型 √ √ 二进制型 √ 3. 文件的存取步骤 虽然使用三种文件访问的数据类型不相同,但它们存取步骤相似,主要的 步骤如下: (1)使用Open语句打开文件,并为文件指定一个文件号。 (2)从文件中读取部分或全部数据到内存变量。 (3)对变量中的数据进行处理。 (4)将处理后的数据保存回文件。 (5)使用Close语句关闭文件。
10.1.1 顺序文件
1. 顺序文件的打开与关闭 (1)打开文件 在对文件进行操作之前,必须用Open语句打开或建立一个文件。 语法:
Open 文件名 [For 模式] [Access 存取类型] [锁定] As [#]文件号 [Len=记录长度]
(2)关闭文件 文件读写完后,应使用Close语句及时关闭。关闭某文件时,所有与该文 件相关联的缓冲区空间都被释放,文件与其文件号之间的关联将终结。如果没 有关闭文件,会导致部分和全部信息丢失。 语法: Close [[[#]文件号] [, [#]文件号]…] 例如,打开和关闭两个文件: Dim i, FileName For i = 1 To 2 FileName = "Score" & i ' 创建文件名 Open FileName For Output As #i ' 打开文件 Next i Close ' 关闭所有文件
10.1.1 顺序文件
(4)Seek语句 Seek语句用来在用Open语句打开的文件中,设置下一个读写操作的位置, 将相应的文件指针移到指定的记录位置。 语法: Seek [#]文件号, 位置 其中,位置是指下一个读写操作将要发生的位置,是介于1~2147483647之 间的数字。可以是整型或长整型。 【例10-1】在窗体中放置三个文件系统控件驱动器列表框、目录列表框和 文件列表框,选择文本文件.txt,打开并将文件内容显示在文本框中。 界面设计:在窗体上放置驱动器列表框Drive1、目录列表框Dir1和文件列 表框File1,一个文本框Text1用来显示文件内容,一个标签Label1用来显示文 件名。
10.1.2 随机文件
5. 删除记录 将随机文件中记录删除的最好方法是把文件中不需要删除的记录拷贝到一 个临时新文件中,然后删除老文件。 删除记录的步骤如下: (1)创建一个新文件。 (2)把不删除的所有记录从原文件复制到新文件,而需删除的记录不复 制。 (3)关闭原文件并用Kill语句删除原文件。 (4)使用Name语句把新文件重命名为原文件名。
10.2.2 驱动器和文件夹操作
1. 驱动器操作 驱动器(Drive)对象可以获得系统所用驱动器的信息,这些驱动器可以 是物理的,也可以是位于网络上的,Drive对象的属性如表10.2所示。
表10.2 Drive对象的属性表
图10.3引用Scripting 类型库
10.2.1 访问FSO对象模型
1.创建FSO对象 创建一个FSO对象可以通过将一个变量声明为FileSystemObject对象类型或 创建一个FileSystemObject对象来完成。 (1)用声明变量的方法成绩一个FileSystemObject对象 例如: Dim Fso As New FileSystemObject (2)使用CreateObject方法来创建一个FileSystemObject对象。 例如: Dim Fso As FileSystemObject Set Fso = CreateObject(“Scripting.FileSystemObject”)
10.1.1 顺序文件
2.顺序文件写操作 (1)Write # 语句 Write # 语句用于将表达式写到顺序文件中。 语法: Write #文件号, [表达式列表] 例如,把“2003010101, 李小明”包括所有标点符号写入到文件中: Write #1 , 2003010101, 李小明 (2)Print # 语句 Print # 语句用于将一个或多个格式化数据写到顺序文件中。 语法: Print #文件号, [表达式列表] 例如,把字符串“2003010101 李小明”写入文件号为1的文件中: Print #1, "2003010101 "; "李小明"
10.1.2 随机文件
4. 添加记录 在随机文件中添加记录,是先找出文件的最后一个记录的记录号,然后将 新的记录写在它的后面。 添加记录的步骤: (1)用Lof函数获取文件的长度,用Len函数获取记录的长度; (2)最后一个记录的记录号=文件长度/记录长度; (3)使用Put #语句向最后一个记录的记录号后面添加新记录。
10.1.1 顺序文件
3. 顺序文件的读操作 (1)Input# 语句 Input# 语句用于从已打开的顺序文件中读出数据并赋给变量。 语法: Input #文件号, 变量列表 (2)Line Input # 语句 Line Input# 语句用于从已打开的顺序文件中读出一行数据,并赋给字符 变量或变体型变量。 语法: Line Input #文件号, 变量名 (3)Input 函数 Input函数返回以Input或Binary方式打开的文件中的字符。 语法: Input(字符个数,[#]文件号) 与Input #语句不同,Input函数返回它所读出的所有字符,包括逗号、回 车符、空白列、换行符、引号和前导空格等。
第10章 文件
10.1 10.2
数据文件
FSO对象模型
10.1 数据文件
1.文件的基本概念 (1)字符 字符(Character)是数据的最小单位。 (2)域 域(Field)是由几个字符组成的。 (3)记录 在数据库中处理数据是以记录(Record)为单位,记录是由一群相关的域 组成。 (4)文件 由一些具有一个或一个以上的记录集合而成的数据单位称为文件(File)。
10.1.1 顺序文件
4. 常用函数和语句 (1)FreeFile函数 FreeFile函数返回下一个可供Open语句使用的文件号,提供一个尚未使用 的文件号。使用FreeFile函数获取可用的文件号是编程的良好习惯。 语法: FreeFile[(文件号范围)] (2)Lof函数 Lof函数返回Open语句打开的文件大小,以字节为单位。 语法: LOF(文件号) (3)EOF函数 EOF函数表明是否到达顺序文件的结尾。使用EOF是为了避免在文件结尾处 读数据而产生错误,对于顺序文件EOF函数告诉用户是否到达文件的最后一个字 符或数据项。 语法: EOF(文件号) EOF函数当到达文件尾部时返回True,否则返回False。
10.1.2 随机文件
【例10-2】打开文件在窗体中添加记录,输入记录内容。 界面设计:在窗体中放置五个文本框数组Text1(0)~Text1(4),用来输入 五个字段,三个按钮Command1~Command3用来“打开文件”、“添加记录”和 “结束”,设置Command2的Enabled属性为False。运行界面如图10.2所示。
10.1.2 随机文件
2.打开和关闭文件 用Open语句以随机访问的方式打开随机文件。 语法: Open 文件名 [For Random]As [#]文件号 [Len=记录长度] 3. 读写文件 读文件使用Get语句,写文件使用Put语句。 语法: Get [#]文件号,[记录号],变量名 Put [#]文件号, [记录号],变量名
10.2.1 访问FSO对象模型
2.FSO对象的方法 (1)GetDrive方法 GetDrive方法返回一个与指定路径中的驱动器相对应的Drive对象。 语法: FileSystemObject.GetDrive(驱动器) (2)GetFolder和GetFile方法 GetFolder方法返回一个和指定路径中文件夹相对应的Folder对象, GetFile方法返回一个和指定路径中文件相对应的File对象,文件夹路径可以 是绝对的或相对的路径。 语法:
例如,访问“考试成绩.txt”文件:
Dim Fso As New FileSystemObject Dim F1 As File Set F1 =Fso.GetFile("c:\考试成绩.txt")
10.1.3 二进制文件
使用Open 语句打开文件,Close语句关闭文件。二进制访问中的 Open 语句 没有指定记录长度,即使指定记录长度也被忽略。 语法: Open 文件名 For Binary As [#]文件号 二进制存取方式与随机存取方式一样,使用Get #语句和Put #语句进行读写 操作。二进制存取方式与随机存取方式的不同在于:二进制存取可以定位到文 件的任一字节位置即定位到字符;二进制存取从文件中读出数据或向文件中写 入数据的长度取决于Get #或Put #语句中变量的长度。 语法: Get [#] 文件号,[字节位置序号],变量名 Put [#] 文件号, [字节位置序号], 变量名 例如,从“考试成绩.txt”文件的指定位置40,写入一个字符串 “2003010106”: Dim Data As Single Dim S1 As String Open "c:\考试成绩" For Binary As #1 S1 = "2003010106" Put #1, 40, S1
10.1 数据文件
2. 文件访问类型 在VB中有三种文件访问的类型:顺序访问文件、随机访问文件和二进制访 问文件。 (1)顺序访问文件 (2)随机访问文件 (3)二进制访问文件 VB提供的大部分语句和函数对于三种文件类型都适用。表10.1列出可用于 三种文件访问类型的语句和函数。 表10.1 语句和函数
10.2 FSO对象模型
FSO对象模型包含在Scripting类型库(Scrrun.Dll)中,必须引用 “Microsoft Scripting Runtime”对象模块才能使用FSO对象模型。选择“工 程”菜单“引用”菜单项,打开“引用”对话框,再选择“Microsoft Scripting Runtime”复选框,如图10.3所示。
语句和函数 Close Get Input() Input # Line Input # Open Print # Put Type...End Type Write # 顺序型 √ √ √ √ √ √ √ 随机型 √ √ 二进制型 √ 3. 文件的存取步骤 虽然使用三种文件访问的数据类型不相同,但它们存取步骤相似,主要的 步骤如下: (1)使用Open语句打开文件,并为文件指定一个文件号。 (2)从文件中读取部分或全部数据到内存变量。 (3)对变量中的数据进行处理。 (4)将处理后的数据保存回文件。 (5)使用Close语句关闭文件。
10.1.1 顺序文件
1. 顺序文件的打开与关闭 (1)打开文件 在对文件进行操作之前,必须用Open语句打开或建立一个文件。 语法:
Open 文件名 [For 模式] [Access 存取类型] [锁定] As [#]文件号 [Len=记录长度]
(2)关闭文件 文件读写完后,应使用Close语句及时关闭。关闭某文件时,所有与该文 件相关联的缓冲区空间都被释放,文件与其文件号之间的关联将终结。如果没 有关闭文件,会导致部分和全部信息丢失。 语法: Close [[[#]文件号] [, [#]文件号]…] 例如,打开和关闭两个文件: Dim i, FileName For i = 1 To 2 FileName = "Score" & i ' 创建文件名 Open FileName For Output As #i ' 打开文件 Next i Close ' 关闭所有文件
10.1.1 顺序文件
(4)Seek语句 Seek语句用来在用Open语句打开的文件中,设置下一个读写操作的位置, 将相应的文件指针移到指定的记录位置。 语法: Seek [#]文件号, 位置 其中,位置是指下一个读写操作将要发生的位置,是介于1~2147483647之 间的数字。可以是整型或长整型。 【例10-1】在窗体中放置三个文件系统控件驱动器列表框、目录列表框和 文件列表框,选择文本文件.txt,打开并将文件内容显示在文本框中。 界面设计:在窗体上放置驱动器列表框Drive1、目录列表框Dir1和文件列 表框File1,一个文本框Text1用来显示文件内容,一个标签Label1用来显示文 件名。
10.1.2 随机文件
5. 删除记录 将随机文件中记录删除的最好方法是把文件中不需要删除的记录拷贝到一 个临时新文件中,然后删除老文件。 删除记录的步骤如下: (1)创建一个新文件。 (2)把不删除的所有记录从原文件复制到新文件,而需删除的记录不复 制。 (3)关闭原文件并用Kill语句删除原文件。 (4)使用Name语句把新文件重命名为原文件名。
10.2.2 驱动器和文件夹操作
1. 驱动器操作 驱动器(Drive)对象可以获得系统所用驱动器的信息,这些驱动器可以 是物理的,也可以是位于网络上的,Drive对象的属性如表10.2所示。
表10.2 Drive对象的属性表
图10.3引用Scripting 类型库
10.2.1 访问FSO对象模型
1.创建FSO对象 创建一个FSO对象可以通过将一个变量声明为FileSystemObject对象类型或 创建一个FileSystemObject对象来完成。 (1)用声明变量的方法成绩一个FileSystemObject对象 例如: Dim Fso As New FileSystemObject (2)使用CreateObject方法来创建一个FileSystemObject对象。 例如: Dim Fso As FileSystemObject Set Fso = CreateObject(“Scripting.FileSystemObject”)
10.1.1 顺序文件
2.顺序文件写操作 (1)Write # 语句 Write # 语句用于将表达式写到顺序文件中。 语法: Write #文件号, [表达式列表] 例如,把“2003010101, 李小明”包括所有标点符号写入到文件中: Write #1 , 2003010101, 李小明 (2)Print # 语句 Print # 语句用于将一个或多个格式化数据写到顺序文件中。 语法: Print #文件号, [表达式列表] 例如,把字符串“2003010101 李小明”写入文件号为1的文件中: Print #1, "2003010101 "; "李小明"
10.1.2 随机文件
4. 添加记录 在随机文件中添加记录,是先找出文件的最后一个记录的记录号,然后将 新的记录写在它的后面。 添加记录的步骤: (1)用Lof函数获取文件的长度,用Len函数获取记录的长度; (2)最后一个记录的记录号=文件长度/记录长度; (3)使用Put #语句向最后一个记录的记录号后面添加新记录。
10.1.1 顺序文件
3. 顺序文件的读操作 (1)Input# 语句 Input# 语句用于从已打开的顺序文件中读出数据并赋给变量。 语法: Input #文件号, 变量列表 (2)Line Input # 语句 Line Input# 语句用于从已打开的顺序文件中读出一行数据,并赋给字符 变量或变体型变量。 语法: Line Input #文件号, 变量名 (3)Input 函数 Input函数返回以Input或Binary方式打开的文件中的字符。 语法: Input(字符个数,[#]文件号) 与Input #语句不同,Input函数返回它所读出的所有字符,包括逗号、回 车符、空白列、换行符、引号和前导空格等。
第10章 文件
10.1 10.2
数据文件
FSO对象模型
10.1 数据文件
1.文件的基本概念 (1)字符 字符(Character)是数据的最小单位。 (2)域 域(Field)是由几个字符组成的。 (3)记录 在数据库中处理数据是以记录(Record)为单位,记录是由一群相关的域 组成。 (4)文件 由一些具有一个或一个以上的记录集合而成的数据单位称为文件(File)。
10.1.1 顺序文件
4. 常用函数和语句 (1)FreeFile函数 FreeFile函数返回下一个可供Open语句使用的文件号,提供一个尚未使用 的文件号。使用FreeFile函数获取可用的文件号是编程的良好习惯。 语法: FreeFile[(文件号范围)] (2)Lof函数 Lof函数返回Open语句打开的文件大小,以字节为单位。 语法: LOF(文件号) (3)EOF函数 EOF函数表明是否到达顺序文件的结尾。使用EOF是为了避免在文件结尾处 读数据而产生错误,对于顺序文件EOF函数告诉用户是否到达文件的最后一个字 符或数据项。 语法: EOF(文件号) EOF函数当到达文件尾部时返回True,否则返回False。
10.1.2 随机文件
【例10-2】打开文件在窗体中添加记录,输入记录内容。 界面设计:在窗体中放置五个文本框数组Text1(0)~Text1(4),用来输入 五个字段,三个按钮Command1~Command3用来“打开文件”、“添加记录”和 “结束”,设置Command2的Enabled属性为False。运行界面如图10.2所示。
10.1.2 随机文件
2.打开和关闭文件 用Open语句以随机访问的方式打开随机文件。 语法: Open 文件名 [For Random]As [#]文件号 [Len=记录长度] 3. 读写文件 读文件使用Get语句,写文件使用Put语句。 语法: Get [#]文件号,[记录号],变量名 Put [#]文件号, [记录号],变量名
10.2.1 访问FSO对象模型
2.FSO对象的方法 (1)GetDrive方法 GetDrive方法返回一个与指定路径中的驱动器相对应的Drive对象。 语法: FileSystemObject.GetDrive(驱动器) (2)GetFolder和GetFile方法 GetFolder方法返回一个和指定路径中文件夹相对应的Folder对象, GetFile方法返回一个和指定路径中文件相对应的File对象,文件夹路径可以 是绝对的或相对的路径。 语法: