电脑学习 数据库访问& 应用程序发布.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 语句)进行读、写操作(Line Inp
4、ut#、Write#语句等)关闭文件(Close 语句),传统文件I/O处理,10.3 任务分析,利用文本文件进行员工工资数据管理的应用程序在程序运行时,将存放于文本文件中的员工工资数据读出,实现浏览显示功能;对这些数据进行修改、删除、添加、插入等编辑操作;将更新后的员工工资数据再写入文件;,任务分析:,10.3 任务分析,界面运行效果如下:,10.3 任务分析,数据输入:Form_Load 数据处理:cmd_Browse_Click cmd_Edit_Click 数据输出:界面输出:Form_Load、cmd_Browse_Click、cmd_Edit_Click 文件输出:cmd_Writ
5、e_Click,声明工程级的通用过程执行对文件中数据的读写操作,可以与窗体界面分离;有助于程序的扩展,可以直接调用这些过程;启动对象Sub Main,创建程序主窗体和事件过程代码框架:,10.3 任务分析,Private Sub Form_Load()从文件中读取数据 显示第1个员工的工资数据 显示员工的总人数和当前员工的顺序号End SubPrivate Sub cmd_Browse_Click(Index As Integer)Select Case IndexCase 0 第一位员工Case 1 前一位员工Case 2 后一位员工Case 3 最后一位员工 End Select 显示第n
6、位员工的工资数据 显示员工的总人数和当前员工的顺序号End Sub,框架代码:,10.3 任务分析,Private Sub cmd_Edit_Click(Index As Integer)Select Case IndexCase 0 在所有记录的最后新增一条Case 1 修改当前记录Case 2 在当前记录的位置插入一条记录Case 3 删除当前记录 End Select 显示第n位员工的工资数据 显示员工的总人数和当前员工的顺序号End SubPrivate Sub cmd_Write_Click()向文件中写入数据End Sub,框架代码:,10.4 实现员工工资数据的读取功能,实现把数
7、据从外存(文本文件)读到内存(变量)中的功能在标准模块中声明:与员工工资数据有关的工程级变量和符号常量;在标准模块中创建:从文本文件中读出数据的通用过程 方法一:采用FSO对象模型方法二:采用传统文件I/O语句和函数,编写从文本文件中读出数据的通用过程,10.4 实现员工工资数据的读取功能,步骤一:引用Scripting 类型库 单击“工程”菜单中的“引用”命令;打开“引用”对话框;从“可用的引用”列表框中选择“Microsoft Scripting Runtime”;步骤二:声明相关的对象变量Dim fso As New FileSystemObjectDim ts As TextStrea
8、mNew是一个关键字,它用于创建新对象。,方法一:采用FSO对象模型,10.4 实现员工工资数据的读取功能,步骤三:创建相关的对象Set ts=fso.OpenTextFile(g_strFileName,ForReading)用Set语句创建对象的实例,把对象赋予其变量。其中,第二个参数可为下列三个常数之一 ForReading:以只读模式打开文件。不能对此文件进行写操作。ForWriting:以只写方式打开文件。不能对此文件进行读操作。ForAppending:打开文件并在文件末尾进行写操作。,10.4 实现员工工资数据的读取功能,步骤四:进行读操作 TextStream对象的ReadLi
9、ne方法步骤五:关闭文件 文件操作完毕,就要将文件关闭,这样下一次才能正确的创建文本流对象。TextStream对象的Close方法,10.4 实现员工工资数据的读取功能,五个步骤中后三步都是在ReadFromFile_fso通用过程中实现文件读取:方法一Public Sub ReadFromFile_fso()过程级变量i,j:i表示第几位员工,j表示第几项信息 Dim i As Integer,j As Integer FSO:步骤三文本流的创建(读方式)Set ts=fso.OpenTextFile(g_strFileName,ForReading)i=0 Do循环:变量i 赋初值 Do
10、 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=iEnd Sub,10.4 实现员工工资数据的读取功能,步骤一:打开文件Open 语句:对文件做任何I/O(输入/输出)操作之前都必须先打开文件;在内存中为文件的读写分配一个缓冲区,并决定使用什么样的
11、访问方式;具体的Open语句如下所示:Open g_strFileName For Input As#1 其中,打开方式:Input:从顺序型文件中输入(读)字符;Output:把字符输出(写)到顺序型文件,覆盖写;Append:把字符输出(写)到顺序型文件的尾部,追加写;,方法二:采用传统文件I/O语句和函数进行读文件,10.4 实现员工工资数据的读取功能,步骤二:进行读操作 Line Input#语句:从已打开的顺序文件中读出一行中的所有字符(不包括回车换行符),并将它分配给字符串型变量;Line Input#文件号,变量名其中,文件号应该与之前Open语句中的文件号相对应;步骤三:关闭文
12、件打开一个文件(Input、Output 或 Append方式)之后,一旦要为其它类型的操作重新打开它,就必须先用 Close 语句关闭它;Close#文件号,10.5 实现员工工资数据的显示功能,显示第n位员工的工资数据,并显示员工的总人数和当前员工的顺序号Private Sub DispWageInfo()Dim j As Integer For j=1 To gInfoNum txt_WageInfo(j-1)=g_vntArrWage(g_intNum,j)Next lbl_CountAll=共&Str(g_intRecNum)&位员工 lbl_CountNum=第&Str(g_int
13、Num)&位员工End Sub,编写显示员工工资数据以及相关数据的通用过程,程序一开始运行,就要求把员工的工资数据显示在相应的文本框中,并在界面下方的标签中显示出员工的总人数和当前员工的顺序号;这些数据的显示操作在之后还会被频繁用到;,10.5 实现员工工资数据的显示功能,Private Sub Form_Load()Dim i As Integer Call ReadFromFile_fso 文件读取:方法一 g_intNum=1 Call DispWageInfo 显示第1位员工工资数据、员工的总人数和当前员工的顺序号 For i=1 To gInfoNum txt_WageInfo(i-
14、1).Enabled=False Next cmd_Write.Visible=FalseEnd Sub,编写Form_Load事件过程,10.5 实现员工工资数据的显示功能,Private Sub cmd_Browse_Click(Index As Integer)Select Case 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
15、 End Select Call DispWageInfo 显示第n位员工工资数据、员工的总人数和当前员工的顺序号End Sub,编写浏览员工工资数据的cmd_Browse_Click事件过程,10.6 实现员工工资数据的保存功能,文件中的员工工资数据能在窗体上显示、浏览,同时,程序还具有编辑功能:增加新员工的工资数据;对某位现有员工的工资数据进行修改或直接删除;编辑的结果只有写到文件中才能真正地保存下来,所以这些功能最终都可以归结为文件的写入操作;覆盖写入追加写入,分析:,10.6 实现员工工资数据的保存功能,将新增员工的工资数据插入到文件中间的某个位置;对现有员工工资数据进行修改、删除;说
16、明:顺序型文件操作模式,只能从上到下逐条顺序进行;要在存储工资数据的二维数组中完成了相应的操作后,才能执行文件的覆盖写入操作;用重新把整个数组写入文件的方式来实现;,编写向文本文件覆盖写入数据的通用过程,10.6 实现员工工资数据的保存功能,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
17、 To gInfoNum 内层循环:执行一次,写入工资数据中的一项信息 ts.WriteLine g_vntArrWage(i,j)FSO:步骤四文本流的写操作 Next Next ts.Close FSO:步骤五文本流的关闭End Sub,文件覆盖写入:方法一,说明:FSO对象模型的处理过程包括五个步骤,其中,第一步“引用”必须要在编写具体代码之前完成的;第二步“声明”是将相关对象的声明放在标准模块中的通用声明部分;,10.6 实现员工工资数据的保存功能,Public Sub WriteToFile_IO()Dim i As Integer,j As Integer 传统文件I/O:步骤一文
18、件打开(覆盖写方式)Open g_strFileName For Output As#1 For i=1 To g_intRecNum 外层循环:执行一次,写入一位员工的工资数据 For j=1 To gInfoNum 内层循环:执行一次,写入工资数据中的一项信息 Print#1,g_vntArrWage(i,j)传统文件I/O:步骤二文件写操作 Next Next Close#1 传统文件I/O:步骤三文件关闭End Sub,文件覆盖写入:方法二,10.6 实现员工工资数据的保存功能,新增员工的工资数据放在文件的最后;文件中原有的数据会全部予以保留的情况;说明:在存储工资数据的二维数组中完成
19、了相应的操作后,只把最后一位员工的工资数据记录追加写入文件;本次写入的数据就会添加到文件的末尾;,编写在文本文件末尾追加写入数据的通用过程,10.6 实现员工工资数据的保存功能,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,
20、j)FSO:步骤四文本流的写操作 Next ts.Close FSO:步骤五文本流的关闭End Sub,文件追加写入:方法一,10.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/
21、O:步骤三文件关闭End Sub,文件追加写入:方法二,10.7 实现员工工资数据的编辑功能,声明两个模块级变量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 保存数据按钮可用,编写编辑按钮
22、的cmd_Edit_Click事件过程,10.7 实现员工工资数据的编辑功能,新增一条工资记录的代码段 修改一条工资记录的代码段 修改一条工资记录的代码段删除一条工资记录的代码段,数组操作,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 T
23、hen 向文件中写入数据 Call WriteToFile_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文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电脑学习 数据库访问& 应用程序发布 电脑 学习 数据库 访问 应用程序 发布
链接地址:https://www.31ppt.com/p-2865258.html