电脑学习 数据库访问& 应用程序发布.ppt
《电脑学习 数据库访问& 应用程序发布.ppt》由会员分享,可在线阅读,更多相关《电脑学习 数据库访问& 应用程序发布.ppt(81页珍藏版)》请在三一文库上搜索。
1、学习目标,掌握在应用程序中添加标准模块、设置启动对象以及在标准模块中声明工程级变量和公有过程的方法 掌握用传统文件I/O语句和函数来进行文件操作的编程方法 掌握用FSO对象模型来进行针对文件操作的编程方法,学习情境三:数据库访问,任务3-1:建立文本文件为数据源的应用程序,目 录,10.1 问题引入 10.2 预备知识 10.3 任务分析 10.4 实现员工工资数据的读取功能 10.5 实现员工工资数据的显示功能 10.6 实现员工工资数据的保存功能 10.7 实现员工工资数据的编辑功能 10.8 文件操作应用举例 10.9 本章容易出错的地方,10.1 问题引入,在之前编写的“员工工资管理系
2、统”中,所有员工工资的原始数据都是在编程时直接写入代码的; 程序运行后,将它们赋值给变量、数组或控件的属性实际上就是存储于计算机的内存中; 并按照程序流程进行修改、添加、删除、计算等处理,得到相应的输出结果; 一旦该程序终止运行,由于内存本身具有易失性的特点,所有处理的结果都无法保留下来。,10.1 问题引入,这就会带来一个问题程序和数据进行分离? 在大多数情况下,编写程序的目的就是需要对大量数据进行处理,更为重要的是,如何将处理的结果需要保留下来? 问题关键数据存放的位置? 由只能临时存储数据的内存变为可永久保存数据的外存,就是存放在独立于程序之外的文件中。,10.2 预备知识,写数据:把内
3、存中的数据传输到相关联的外部设备(例如磁盘等)并作为文件存放的操作; 读数据:把数据文件中的数据传输到内存程序中的操作;,文件:记录在外部介质上的数据的集合,顺序型:适用于读写在连续块中的文本文件; 随机型:适用于读写有固定长度记录结构的文本文件或者二进制文件 ; 二进制型:适用于读写任意有结构的文件;,文件访问类型,10.2 预备知识,引用Scripting 类型库 声明相关的对象变量 创建相关的对象变量 进行读、写操作 关闭文件(TextStream对象的Close方法),File System Object (FSO) 对象模型编程,10.2 预备知识,打开或建立文件(Open 语句)
4、进行读、写操作(Line Input #、Write # 语句等) 关闭文件(Close 语句),传统文件I/O处理,10.3 任务分析,利用文本文件进行员工工资数据管理的应用程序 在程序运行时,将存放于文本文件中的员工工资数据读出,实现浏览显示功能; 对这些数据进行修改、删除、添加、插入等编辑操作; 将更新后的员工工资数据再写入文件;,任务分析:,10.3 任务分析,界面运行效果如下:,10.3 任务分析,数据输入:Form_Load 数据处理:cmd_Browse_Click cmd_Edit_Click 数据输出: 界面输出:Form_Load、cmd_Browse_Click、cmd_
5、Edit_Click 文件输出:cmd_Write_Click,声明工程级的通用过程 执行对文件中数据的读写操作,可以与窗体界面分离; 有助于程序的扩展,可以直接调用这些过程; 启动对象Sub Main,创建程序主窗体和事件过程代码框架:,10.3 任务分析,Private Sub Form_Load() 从文件中读取数据 显示第1个员工的工资数据 显示员工的总人数和当前员工的顺序号 End Sub Private Sub cmd_Browse_Click(Index As Integer) Select Case Index Case 0 第一位员工 Case 1 前一位员工 Case 2
6、后一位员工 Case 3 最后一位员工 End Select 显示第n位员工的工资数据 显示员工的总人数和当前员工的顺序号 End Sub,框架代码:,10.3 任务分析,Private Sub cmd_Edit_Click(Index As Integer) Select Case Index Case 0 在所有记录的最后新增一条 Case 1 修改当前记录 Case 2 在当前记录的位置插入一条记录 Case 3 删除当前记录 End Select 显示第n位员工的工资数据 显示员工的总人数和当前员工的顺序号 End Sub Private Sub cmd_Write_Click() 向
7、文件中写入数据 End Sub,框架代码:,10.4 实现员工工资数据的读取功能,实现把数据从外存(文本文件)读到内存(变量)中的功能 在标准模块中声明:与员工工资数据有关的工程级变量和符号常量; 在标准模块中创建:从文本文件中读出数据的通用过程 方法一:采用FSO对象模型 方法二:采用传统文件I/O语句和函数,编写从文本文件中读出数据的通用过程,10.4 实现员工工资数据的读取功能,步骤一:引用Scripting 类型库 单击“工程”菜单中的“引用”命令; 打开“引用”对话框; 从“可用的引用”列表框中选择“Microsoft Scripting Runtime”; 步骤二:声明相关的对象变
8、量 Dim fso As New FileSystemObject Dim ts As TextStream New是一个关键字,它用于创建新对象。,方法一:采用FSO对象模型,10.4 实现员工工资数据的读取功能,步骤三:创建相关的对象 Set ts = fso.OpenTextFile(g_strFileName, ForReading) 用Set语句创建对象的实例,把对象赋予其变量。 其中,第二个参数可为下列三个常数之一 ForReading:以只读模式打开文件。不能对此文件进行写操作。 ForWriting:以只写方式打开文件。不能对此文件进行读操作。 ForAppending:打开文
9、件并在文件末尾进行写操作。,10.4 实现员工工资数据的读取功能,步骤四:进行读操作 TextStream对象的ReadLine方法 步骤五:关闭文件 文件操作完毕,就要将文件关闭,这样下一次才能正确的创建文本流对象。 TextStream对象的Close方法,10.4 实现员工工资数据的读取功能,五个步骤中后三步都是在ReadFromFile_fso通用过程中实现 文件读取:方法一 Public Sub ReadFromFile_fso() 过程级变量i, j: i表示第几位员工,j表示第几项信息 Dim i As Integer, j As Integer FSO: 步骤三文本流的创建(读
10、方式) Set ts = fso.OpenTextFile(g_strFileName, ForReading) i = 0 Do循环: 变量i 赋初值 Do While Not ts.AtEndOfStream Do循环:执行一次,读取一位员工数据 i = i + 1 Do循环: 变量i 每次累加1 For j = 1 To gInfoNum For循环:执行一次,读取工资数据中的一项 FSO: 步骤四文本流的读操作 g_vntArrWage(i, j) = ts.ReadLine Next Loop FSO: 步骤五文本流的关闭 ts.Close g_intRecNum = i End S
11、ub,10.4 实现员工工资数据的读取功能,步骤一:打开文件 Open 语句:对文件做任何I/O(输入/输出)操作之前都必须先打开文件; 在内存中为文件的读写分配一个缓冲区,并决定使用什么样的访问方式; 具体的Open语句如下所示: Open g_strFileName For Input As #1 其中,打开方式: Input:从顺序型文件中输入(读)字符; Output:把字符输出(写)到顺序型文件,覆盖写; Append:把字符输出(写)到顺序型文件的尾部,追加写;,方法二:采用传统文件I/O语句和函数进行读文件,10.4 实现员工工资数据的读取功能,步骤二:进行读操作 Line In
12、put # 语句:从已打开的顺序文件中读出一行中的所有字符(不包括回车换行符),并将它分配给字符串型变量; Line Input #文件号, 变量名 其中,文件号应该与之前Open语句中的文件号相对应; 步骤三:关闭文件 打开一个文件(Input、Output 或 Append方式)之后,一旦要为其它类型的操作重新打开它,就必须先用 Close 语句关闭它; Close #文件号,10.5 实现员工工资数据的显示功能,显示第n位员工的工资数据,并显示员工的总人数和当前员工的顺序号 Private Sub DispWageInfo() Dim j As Integer For j = 1 To
13、gInfoNum txt_WageInfo(j - 1) = g_vntArrWage(g_intNum, j) Next lbl_CountAll = “共“ & Str(g_intRecNum) & “位员工“ lbl_CountNum = “第“ & Str(g_intNum) & “位员工“ End Sub,编写显示员工工资数据以及相关数据的通用过程,程序一开始运行,就要求把员工的工资数据显示在相应的文本框中,并在界面下方的标签中显示出员工的总人数和当前员工的顺序号; 这些数据的显示操作在之后还会被频繁用到;,10.5 实现员工工资数据的显示功能,Private Sub Form_Lo
14、ad() Dim i As Integer Call ReadFromFile_fso 文件读取:方法一 g_intNum = 1 Call DispWageInfo 显示第1位员工工资数据、员工的总人数和当前员工的顺序号 For i = 1 To gInfoNum txt_WageInfo(i - 1).Enabled = False Next cmd_Write.Visible = False End Sub,编写Form_Load事件过程,10.5 实现员工工资数据的显示功能,Private Sub cmd_Browse_Click(Index As Integer) Select Ca
15、se Index Case 0 第一位员工 g_intNum = 1 Case 1 前一位员工 If g_intNum = g_intRecNum Then MsgBox “已是最后一位员工!“ Else g_intNum = g_intNum + 1 End If Case 3 最后一位员工 g_intNum = g_intRecNum End Select Call DispWageInfo 显示第n位员工工资数据、员工的总人数和当前员工的顺序号 End Sub,编写浏览员工工资数据的cmd_Browse_Click事件过程,10.6 实现员工工资数据的保存功能,文件中的员工工资数据能在窗
16、体上显示、浏览,同时,程序还具有编辑功能: 增加新员工的工资数据; 对某位现有员工的工资数据进行修改或直接删除; 编辑的结果只有写到文件中才能真正地保存下来,所以这些功能最终都可以归结为文件的写入操作; 覆盖写入 追加写入,分析:,10.6 实现员工工资数据的保存功能,将新增员工的工资数据插入到文件中间的某个位置; 对现有员工工资数据进行修改、删除; 说明: 顺序型文件操作模式,只能从上到下逐条顺序进行; 要在存储工资数据的二维数组中完成了相应的操作后,才能执行文件的覆盖写入操作; 用重新把整个数组写入文件的方式来实现;,编写向文本文件覆盖写入数据的通用过程,10.6 实现员工工资数据的保存功
17、能,Public Sub WriteToFile_fso() Dim i As Integer, j As Integer FSO: 步骤三文本流的创建(覆盖写方式) Set ts = fso.OpenTextFile(g_strFileName, ForWriting) For i = 1 To g_intRecNum 外层循环:执行一次,写入一位员工的工资数据 For j = 1 To gInfoNum 内层循环:执行一次,写入工资数据中的一项信息 ts.WriteLine g_vntArrWage(i, j) FSO: 步骤四文本流的写操作 Next Next ts.Close FSO:
18、 步骤五文本流的关闭 End Sub,文件覆盖写入:方法一,说明:FSO对象模型的处理过程包括五个步骤,其中, 第一步“引用”必须要在编写具体代码之前完成的; 第二步“声明”是将相关对象的声明放在标准模块中的通用声明部分;,10.6 实现员工工资数据的保存功能,Public Sub WriteToFile_IO() Dim i As Integer, j As Integer 传统文件I/O: 步骤一文件打开(覆盖写方式) Open g_strFileName For Output As #1 For i = 1 To g_intRecNum 外层循环:执行一次,写入一位员工的工资数据 For
19、 j = 1 To gInfoNum 内层循环:执行一次,写入工资数据中的一项信息 Print #1, g_vntArrWage(i, j) 传统文件I/O: 步骤二文件写操作 Next Next Close #1 传统文件I/O: 步骤三文件关闭 End Sub,文件覆盖写入:方法二,10.6 实现员工工资数据的保存功能,新增员工的工资数据放在文件的最后; 文件中原有的数据会全部予以保留的情况; 说明: 在存储工资数据的二维数组中完成了相应的操作后,只把最后一位员工的工资数据记录追加写入文件; 本次写入的数据就会添加到文件的末尾;,编写在文本文件末尾追加写入数据的通用过程,10.6 实现员工
20、工资数据的保存功能,Public Sub AppendToFile_fso() Dim i As Integer, j As Integer FSO: 步骤三文本流的创建(追加写方式) Set ts = fso.OpenTextFile(g_strFileName, ForAppending) For j = 1 To gInfoNum For循环:执行一次,写入工资数据中一项信息 ts.WriteLine g_vntArrWage(g_intRecNum, j) FSO: 步骤四文本流的写操作 Next ts.Close FSO: 步骤五文本流的关闭 End Sub,文件追加写入:方法一,1
21、0.6 实现员工工资数据的保存功能,Public Sub AppendToFile_IO() Dim j As Integer 传统文件I/O: 步骤一文件打开(追加写方式) Open g_strFileName For Append As #1 For j = 1 To gInfoNum For循环:执行一次,写入工资数据中的一项信息 传统文件I/O: 步骤二文件的写操作 Print #1, g_vntArrWage(g_intRecNum, j) Next Close #1 传统文件I/O: 步骤三文件关闭 End Sub,文件追加写入:方法二,10. 7 实现员工工资数据的编辑功能,声明
22、两个模块级变量m_blnDele、m_blnWrite 数据类型都是布尔(逻辑)型 区别编辑操作类型:新增、插入、修改、删除 m_blnDele:表示编辑数据的方式 m_blnWrite:表示数据写入的方式,m_blnWrite = True 初始化为覆盖写入方式 m_blnDele = False 初始化为非删除操作 fra_Browse.Visible = False 浏览/编辑框架不可见 fra_Edit.Visible = False cmd_Write.Visible = True 保存数据按钮可用,编写编辑按钮的cmd_Edit_Click事件过程,10. 7 实现员工工资数据的编
23、辑功能,新增一条工资记录的代码段 修改一条工资记录的代码段 修改一条工资记录的代码段 删除一条工资记录的代码段,数组操作,10. 7 实现员工工资数据的编辑功能,Private Sub cmd_Write_Click() Dim i As Integer If m_blnDele = False Then For i = 1 To gInfoNum 将文本框中的内容(当前员工工资数据)存入数组 g_vntArrWage(g_intNum, i) = txt_WageInfo(i - 1) Next End If If m_blnWrite = True Then 向文件中写入数据 Call W
24、riteToFile_fso 文件覆盖写入:方法一 Else Call AppendToFile_fso 文件追加写入:方法一 End If fra_Browse.Visible = True 浏览/编辑框架可见 fra_Edit.Visible = True For i = 1 To gInfoNum 文本框中的内容不接受输入 txt_WageInfo(i - 1).Enabled = False Next cmd_Write.Visible = False 保存数据按钮不可用 End Sub,编写保存数据按钮的cmd_Write_Click事件过程,10.8 文件操作应用举例,程序运行时,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电脑学习 数据库访问& 应用程序发布 电脑 学习 数据库 访问 amp 应用程序 发布
链接地址:https://www.31doc.com/p-3671658.html