版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、项目单元项目单元5 建立以文本文件为数据源建立以文本文件为数据源的的“员工工资管理系统员工工资管理系统”目录目录5.1 问题引入问题引入 5.2 预备知识预备知识 5.3 问题分析问题分析 5.4 实现员工工资数据的读取功能实现员工工资数据的读取功能 5.5 实现员工工资数据的显示功能实现员工工资数据的显示功能 5.6 实现员工工资数据的保存功能实现员工工资数据的保存功能 5.7 实现员工工资数据的编辑功能实现员工工资数据的编辑功能5.8 文件操作应用举例文件操作应用举例5.10 本单元容易出错的地方本单元容易出错的地方5.11 课堂实训和课堂练习课堂实训和课堂练习5.1 问题引入问题引入5.
2、2 预备知识预备知识5.2 预备知识预备知识引用引用Scripting 类型库类型库 声明相关的对象变量声明相关的对象变量 创建相关的对象变量创建相关的对象变量 进行读、写操作进行读、写操作 1. 关闭文件(关闭文件(TextStream对象的对象的Close方法)方法) 5.2 预备知识预备知识打开或建立文件(打开或建立文件(Open Open 语句)语句) 进行读、写操作(进行读、写操作(Line Input #Line Input #、Write # Write # 语句等)语句等) 关闭文件(关闭文件(Close Close 语句)语句) 5.3 问题分析问题分析5.3 问题分析问题分
3、析控件数组控件数组cmd_Browse cmd_Browse 控件数组控件数组cmd_Edit cmd_Edit 控件控件cmd_Write cmd_Write 5.3问题分析问题分析数据输入:数据输入:Form_Load Form_Load 数据处理:数据处理:cmd_Browse_Click cmd_Edit_Click cmd_Browse_Click cmd_Edit_Click 数据输出:数据输出:界面输出:界面输出:Form_LoadForm_Load、cmd_Browse_Clickcmd_Browse_Click、cmd_Edit_Click cmd_Edit_Click 文件
4、输出:文件输出:cmd_Write_Click cmd_Write_Click 声明工程级的通用过程声明工程级的通用过程执行对文件中数据的读写操作,可以与窗体界面分离;执行对文件中数据的读写操作,可以与窗体界面分离;有助于程序的扩展,可以直接调用这些过程;有助于程序的扩展,可以直接调用这些过程;启动对象启动对象Sub MainSub Main5.3 问题分析问题分析Private Sub Form_Load() 从文件中读取数据从文件中读取数据 显示第显示第1个员工的工资数据个员工的工资数据 显示员工的总人数和当前员工的顺序号显示员工的总人数和当前员工的顺序号End SubPrivate Su
5、b cmd_Browse_Click(Index As Integer) Select Case IndexCase 0 第一位员工第一位员工Case 1 前一位员工前一位员工Case 2 后一位员工后一位员工Case 3 最后一位员工最后一位员工 End Select 显示第显示第n位员工的工资数据位员工的工资数据 显示员工的总人数和当前员工的顺序号显示员工的总人数和当前员工的顺序号End Sub5.3问题分析问题分析Private Sub cmd_Edit_Click(Index As Integer) Select Case IndexCase 0 在所有记录的最后新增一条在所有记录的最
6、后新增一条Case 1 修改当前记录修改当前记录Case 2 在当前记录的位置插入一条记录在当前记录的位置插入一条记录Case 3 删除当前记录删除当前记录 End Select 显示第显示第n位员工的工资数据位员工的工资数据 显示员工的总人数和当前员工的顺序号显示员工的总人数和当前员工的顺序号End SubPrivate Sub cmd_Write_Click() 向文件中写入数据向文件中写入数据End Sub 5.4 实现员工工资数据的读取功能实现员工工资数据的读取功能实现把实现把数据从外存(文本文件)读到内存(变量)数据从外存(文本文件)读到内存(变量)中的中的功能功能在标准模块中声明:
7、与员工工资数据有关的工程级变量在标准模块中声明:与员工工资数据有关的工程级变量和符号常量;和符号常量;在标准模块中创建:从文本文件中读出数据的通用过程在标准模块中创建:从文本文件中读出数据的通用过程 方法一:采用方法一:采用FSOFSO对象模型对象模型方法二:采用传统文件方法二:采用传统文件I/OI/O语句和函数语句和函数 5.4实现员工工资数据的读取功能实现员工工资数据的读取功能步骤一:引用步骤一:引用Scripting Scripting 类型库类型库 单击单击“工程工程”菜单中的菜单中的“引用引用”命令;命令;打开打开“引用引用”对话框;对话框;从从“可用的引用可用的引用”列表框中选择列
8、表框中选择“Microsoft Scripting Runtime”Microsoft Scripting Runtime”;步骤二:声明相关的对象变量步骤二:声明相关的对象变量Dim fso As New FileSystemObjectDim fso As New FileSystemObjectDim ts As TextStreamDim ts As TextStreamNewNew是一个关键字是一个关键字,它用于创建新对象。,它用于创建新对象。 5.4 实现员工工资数据的读取功能实现员工工资数据的读取功能步骤三:创建相关的对象步骤三:创建相关的对象Set ts = fso.OpenT
9、extFile(g_strFileName, ForReading) Set ts = fso.OpenTextFile(g_strFileName, ForReading) 用用SetSet语句创建对象的实例,把对象赋予其变量。语句创建对象的实例,把对象赋予其变量。其中,第二个参数可为下列三个常数之一其中,第二个参数可为下列三个常数之一 ForReadingForReading:以只读模式打开文件。不能对此文件进行写:以只读模式打开文件。不能对此文件进行写操作。操作。ForWritingForWriting:以只写方式打开文件。不能对此文件进行读:以只写方式打开文件。不能对此文件进行读操作。
10、操作。ForAppendingForAppending:打开文件并在文件末尾进行写操作。:打开文件并在文件末尾进行写操作。 5.4 实现员工工资数据的读取功能实现员工工资数据的读取功能步骤四:进行读操作步骤四:进行读操作 TextStream对象的对象的ReadLine方法方法步骤五:关闭文件步骤五:关闭文件 文件操作完毕,就要将文件关闭,这样下一次文件操作完毕,就要将文件关闭,这样下一次才能正确的创建文本流对象。才能正确的创建文本流对象。TextStream对象的对象的Close方法方法5.4 实现员工工资数据的读取功能实现员工工资数据的读取功能5.4 实现员工工资数据的读取功能实现员工工资
11、数据的读取功能用用Do While循环举例循环举例:i= 1 Do While i = 5 Print i i = i+1Loop 用用For 循环举例循环举例:For i = 1 to 5Print iNext I5.4 实现员工工资数据的读取功能实现员工工资数据的读取功能五个步骤中后三步都是在五个步骤中后三步都是在ReadFromFile_fso通用过程中实现通用过程中实现文件读取:方法一文件读取:方法一Public Sub ReadFromFile_fso() 过程级变量过程级变量i, j: i表示第几位员工,表示第几位员工,j表示第几项信息表示第几项信息 Dim i As Intege
12、r, j As Integer FSO: 步骤三步骤三文本流的创建(读方式)文本流的创建(读方式) 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: 步骤四步骤四文本
13、流的读操作文本流的读操作 g_vntArrWage(i, j) = ts.ReadLine Next Loop FSO: 步骤五步骤五文本流的关闭文本流的关闭 ts.Close g_intRecNum = iEnd Sub5.4实现员工工资数据的读取功能实现员工工资数据的读取功能步骤一:打开文件步骤一:打开文件Open 语句:对文件做任何语句:对文件做任何I/O(输入(输入/输出)操作之前都必须先打开输出)操作之前都必须先打开文件;文件;在内存中为文件的读写分配一个缓冲区,并决定使用什么样的访问在内存中为文件的读写分配一个缓冲区,并决定使用什么样的访问方式;方式;具体的具体的Open语句如下所
14、示:语句如下所示:Open g_strFileName For Input As #1 其中,打开方式:其中,打开方式:Input:从顺序型文件中输入(读)字符;:从顺序型文件中输入(读)字符;Output:把字符输出(写)到顺序型文件,覆盖写;:把字符输出(写)到顺序型文件,覆盖写;Append:把字符输出(写)到顺序型文件的尾部,追加写;:把字符输出(写)到顺序型文件的尾部,追加写;5.4 实现员工工资数据的读取功能实现员工工资数据的读取功能步骤二:进行读操作步骤二:进行读操作 Line Input # 语句:从已打开的顺序文件中读出一行中的语句:从已打开的顺序文件中读出一行中的所有字符(
15、不包括回车换行符),并将它分配给字符串所有字符(不包括回车换行符),并将它分配给字符串型变量;型变量; Line Input #文件号文件号, 变量名变量名其中,文件号应该与之前其中,文件号应该与之前Open语句中的文件号相对应;语句中的文件号相对应;步骤三:关闭文件步骤三:关闭文件打开一个文件(打开一个文件(Input、Output 或或 Append方式)之后,方式)之后,一旦要为其它类型的操作重新打开它,就必须先用一旦要为其它类型的操作重新打开它,就必须先用 Close 语句关闭它;语句关闭它;Close #文件号文件号5.5 实现员工工资数据的显示功能实现员工工资数据的显示功能 显示第
16、显示第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_intNum) & 位员工位员工End Sub程序一开始运行,就要求把
17、员工的工资数据显示在相应的文本框中,程序一开始运行,就要求把员工的工资数据显示在相应的文本框中,并在界面下方的标签中显示出员工的总人数和当前员工的顺序号;并在界面下方的标签中显示出员工的总人数和当前员工的顺序号;这些数据的显示操作在之后还会被频繁用到;这些数据的显示操作在之后还会被频繁用到;5.5 实现员工工资数据的显示功能实现员工工资数据的显示功能 Private Sub Form_Load() Dim i As Integer Call ReadFromFile_fso 文件读取:方法一文件读取:方法一 g_intNum = 1 Call DispWageInfo 显示第显示第1位员工工资
18、数据、员工的总人数位员工工资数据、员工的总人数和当前员工的顺序号和当前员工的顺序号 For i = 1 To gInfoNum txt_WageInfo(i - 1).Enabled = False Next cmd_Write.Visible = FalseEnd Sub5.5 实现员工工资数据的显示功能实现员工工资数据的显示功能 Private Sub cmd_Browse_Click(Index As Integer) Select Case Index Case 0 第一位员工第一位员工 g_intNum = 1 Case 1 前一位员工前一位员工 If g_intNum = g_in
19、tRecNum Then MsgBox 已是最后一位员工已是最后一位员工! Else g_intNum = g_intNum + 1 End If Case 3 最后一位员工最后一位员工 g_intNum = g_intRecNum End Select Call DispWageInfo 显示第显示第n位员工工资数据、员工的总人数和当前员工的顺序号位员工工资数据、员工的总人数和当前员工的顺序号End Sub 5.6 实现员工工资数据的保存功能实现员工工资数据的保存功能 5.6 实现员工工资数据的保存功能实现员工工资数据的保存功能 将新增员工的工资数据插入到文件中间的某个位置;将新增员工的工资
20、数据插入到文件中间的某个位置;对现有员工工资数据进行修改、删除;对现有员工工资数据进行修改、删除;说明:说明:顺序型文件操作模式,只能从上到下逐条顺序进行;顺序型文件操作模式,只能从上到下逐条顺序进行;要在存储工资数据的二维数组中完成了相应的操作后,要在存储工资数据的二维数组中完成了相应的操作后,才能执行文件的覆盖写入操作;才能执行文件的覆盖写入操作;用重新把整个数组写入文件的方式来实现用重新把整个数组写入文件的方式来实现;5.6 实现员工工资数据的保存功能实现员工工资数据的保存功能 Public Sub WriteToFile_fso() Dim i As Integer, j As Int
21、eger 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.Cl
22、ose FSO: 步骤五步骤五文本流的关闭文本流的关闭End Sub覆盖写入说明:FSO对象模型的处理过程包括五个步骤,其中,第一步“引用”必须要在编写具体代码之前完成的;第二步“声明”是将相关对象的声明放在标准模块中的通用声明部分;5.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_
23、intRecNum 外层循环外层循环:执行一次执行一次,写入一位员工的工资数据写入一位员工的工资数据 For j = 1 To gInfoNum 内层循环内层循环:执行一次执行一次,写入工资数据中的一项信息写入工资数据中的一项信息 Print #1, g_vntArrWage(i, j) 传统文件传统文件I/O: 步骤二步骤二文件写操作文件写操作 Next Next Close #1 传统文件传统文件I/O: 步骤三步骤三文件关闭文件关闭End Sub覆盖写入5.6 实现员工工资数据的保存功能实现员工工资数据的保存功能 新增员工的工资数据放在文件的最后;新增员工的工资数据放在文件的最后; 文件
24、中原有的数据会全部予以保留的情况;文件中原有的数据会全部予以保留的情况;说明:说明:在存储工资数据的二维数组中完成了相应的操作后,在存储工资数据的二维数组中完成了相应的操作后,只把最后一位员工的工资数据记录追加写入文件;只把最后一位员工的工资数据记录追加写入文件;本次写入的数据就会添加到文件的末尾;本次写入的数据就会添加到文件的末尾;5.6 实现员工工资数据的保存功能实现员工工资数据的保存功能 Public Sub AppendToFile_fso() Dim i As Integer, j As Integer FSO: 步骤三步骤三文本流的创建(追加写方式)文本流的创建(追加写方式) Se
25、t 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追加写入5.6 实现员工工资数据的保存功能实现员工工资数据的保存功能 Public Sub AppendToFile_IO() Dim j As
26、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追加写入5. 7 实现员工工资数据的编辑功能实现员工工资数据的
27、编辑功能 声明两个模块级变量声明两个模块级变量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 保存数据按钮可用保存数据按钮可用5
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 制作儿童课件教学课件
- 目送课件底板教学课件
- 蘑菇屋课件教学课件
- 卡通游戏课件教学课件
- 2024年度云计算平台广告业务合同
- 2024年度八宝山殡仪馆鲜花制品物流配送服务合同
- 2024年度委托加工协议(定制产品)
- 2024年塑料模具生产与交付合同
- 2024年度健康医疗服务合同服务细节
- 2024供水供电合同
- 志愿者服务台帐表.doc01
- 股权赠与协议范本只享有分红权
- COPD诊治新进展ppt课件
- 医院没有空床或医疗设施有限时的处理制度及流程
- 384种矿物与矿石标本实例照片
- 高中数学课本中的定理、公式、结论的证明
- 冬季安全教育主题班会PPT课件
- 集团公司质量管理办法(共19页)
- C++程序设计:第8章 数组
- 海口市安全生产事故应急救援预案(中安科修编稿)
- 浅谈钢-混凝土叠合板组合梁
评论
0/150
提交评论