第十六章 设计文件应用程序 本章内容及要求: 掌握VB中文件的概念、种类及其结构; 掌握顺序文件的操作:打开、读/写、关闭;

Slides:



Advertisements
Similar presentations
第六 章数据库访问页 6.1 数据访问页视图 6.2 创建数据访问页 6.3 编辑数据访问页 6.4 查看数据访问页 退出.
Advertisements

项目2 字符格式和段落编排 2017年3月7日6时54分.
第 7 章 文 件.
第三章 数据类型和数据操作 对海量数据进行有效的处理、存储和管理 3.1 数据类型 数据源 数据量 数据结构
第12章 处理文件 Visual Basic 程序设计教程.
Oracle数据库 Oracle 子程序.
高等医药院校药学类第三轮规划教材——大学计算机基础
目标 运用File类进行文件操作 理解流,标准输入/输出流的概念
在PHP和MYSQL中实现完美的中文显示
第二章 Visual Basic语言基础.
Hadoop I/O By ShiChaojie.
Visual Basic 程序设计 第12章文件处理
第7章 文 件 7.1 文件的概述 7.2 顺序文件的读写操作 7.3 通用对话框 7.4 文件系统控件.
存储系统.
第十三章 檔案.
第4章 程序控制结构与算法基础.
管理信息结构SMI.
走进编程 程序的顺序结构(二).
辅导课程六.
Visual Basic 程序设计 教师:王 杨 电话:
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
丙級電腦軟設-VB程式設計 資料來源:林文恭研究室 整理:張福生.
新觀念的 VB6 教本 第 6 章 資料型別.
第十章 IDL访问数据库 10.1 数据库与数据库访问 1、数据库 数据库中数据的组织由低到高分为四级:字段、记录、表、数据库四种。
第 8 章 数据文件.
第四章 附件 (应用程序软件包).
第七章 文件 本章重点 7.1 文件管理控件 7.2 文件处理 7.3 练习.
Windows 7 的系统设置.
用event class 从input的root文件中,由DmpDataBuffer::ReadObject读取数据的问题
目录 11.1 文件的种类 11.2 文件指针和文件内部的位置指针 11.3 文件的操作 11.4 文件的打开与关闭
VB程序设计语言 主讲教师:王 杨.
Java语言程序设计 清华大学出版社 第8章 输入输出流(1).
SOA – Experiment 2: Query Classification Web Service
第4章 PHP流程控制语句.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
C语言程序设计 主讲教师:陆幼利.
简单介绍 用C++实现简单的模板数据结构 ArrayList(数组, 类似std::vector)
学习目标 1、什么是字符集 2、字符集四个级别 3、如何选择字符集.
C++语言程序设计 C++语言程序设计 第六章 指针和引用 第十一组 C++语言程序设计.
本节内容 随机读取 视频提供:昆山爱达人信息技术有限公司.
Drupal Dev 我想知道:什么时候、什么变化.
VB与Access数据库的连接.
姚金宇 MIT SCHEME 使用说明 姚金宇
<编程达人入门课程> 本节内容 内存的使用 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群: ,
Lab17 程序设计B班
Web安全基础教程
第4章 Excel电子表格制作软件 4.4 函数(一).
第九节 赋值运算符和赋值表达式.
iSIGHT 基本培训 使用 Excel的栅栏问题
3.16 枚举算法及其程序实现 ——数组的作用.
C++语言程序设计 C++语言程序设计 第二章 基本数据类型与表达式 第十一组 C++语言程序设计.
本节内容 文件系统 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
Visual Basic程序设计 第13章 访问数据库
本节内容 C语言的汇编表示 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
計算機程式 Visual BASIC 程式設計
Python 环境搭建 基于Anaconda和VSCode.
_08文件操作 本节课讲师——void* 视频提供:昆山爱达人信息技术有限公司 官网地址:
第11章 文件处理技术 文件是存放在外部介质上的数据集合。很多程序需要读写磁盘文件,所以涉及到如何建立文件,如何从文件中读数据,如何向文件写数据等问题。本章将讨论与文件操作相关的内容。
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
本节内容 动态链接库 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
VB与Access数据库的连接.
本节内容 导出表 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
大数据应用人才培养系列教材 Python语言 刘 鹏 张 燕 总主编 李肖俊 主编 刘 河 钟 涛 副主编.
WEB程序设计技术 数据库操作.
第四章 UNIX文件系统.
使用ADO访问数据库 李宝智 BonizLee 课程 10564A
使用Fragment 本讲大纲: 1、创建Fragment 2、在Activity中添加Fragment
顺序结构程序设计 ——关于“字符串”和数值.
RefWorks使用指南 归档、管理个人参考文献.
Presentation transcript:

第十六章 设计文件应用程序 本章内容及要求: 掌握VB中文件的概念、种类及其结构; 掌握顺序文件的操作:打开、读/写、关闭; 第十六章 设计文件应用程序 本章内容及要求: 掌握VB中文件的概念、种类及其结构; 掌握顺序文件的操作:打开、读/写、关闭; 了解随机文件的操作:打开、读/写、关闭; 了解二进制文件的操作:打开、读/写、关闭。 了解常用的文件操作的语句和函数。 学习FSO对象模型的结构,掌握对象变量的定义和使用。

本章重点: 文件的操作:打开、读/写、关闭。

16-1 文件的概念 一、文件及其结构 文件:存储在外部介质上数据的集合。 要求操作系统中的文件系统能提供用户按名存取方式 在操作系统中有两种文件: 字符流无结构文件和记录式有结构文件 磁盘文件是由数据记录组成。记录是计算机处理数据的基本单位,它由一组具有共同属性相互关联的数据项组成。 数据项

二、文件分类 1.顺序文件 根据访问文件的方式将文件分成3类: 顺序文件、 随机文件、 二进制文件。 顺序文件、 随机文件、 二进制文件。 1.顺序文件 顺序文件(Sequential File)是普通的文本文件。顺序文件中的记录按顺序一个接一个地排列。读写文件存取记录时,都必须按记录顺序逐个进行。一行一条记录(一项数据),记录可长可短,以“换行”字符为分隔符号。 结构简单; 但不能灵活存取,适用于不经常修改的文件

2.随机文件 随机文件(Random Access File)是可以按任意次序读写的文件,其中每个记录的长度必须相同。在这种文件结构中,每个记录都有其唯一的一个记录号,所以在读取数据时,只要知道记录号,便可以直接读取记录。 存取速度快,易更新;但占用空间大,设计程序较复杂

3.二进制文件 二进制文件(Binaryfile)是字节的集合,直接把二进制码存放在文件中。 除了没有数据类型或者记录长度的含义以外,它与随机访问很相似。 二进制访问模式是以字节数来定位数据,在程序中可以按任何方式组织和访问数据,对文件中各字节数据直接进行存取。 灵活性很大; 相对的, 程序更复杂

16-2 顺序文件 16-2-1 顺序文件的打开与关闭 在程序中对文件的操作,通常按3个步骤进行: 打开文件 关闭文件 读出或写入 16-2-1 顺序文件的打开与关闭 1.打开顺序文件 其使用格式如下: Open FileName For [Input | Output | Append] [Lock]As filenumber [Len = Buffersize]

例如: OPEN “C:\TEMP\A.TXT ” FOR Input AS #1 OPEN“C:\TEMP\B.TXT ” FOR Output AS #2 OPEN“C:\TEMP\C.TXT ” FOR Append AS #3 2. 关闭文件——Close 语句 使用格式如下: Close [filenumberlist] 其中: filenumberlist:可选项,为文件号列表,如:#1, #2, #3, 例如: Close #1,#2,#3 如果省略,则将关闭Open语句打开的所有活动文件。 Close

16-2-2 顺序文件的读写操作 向文件写入内容使用 Print # 语句或Write#语句,在程序是数据输出。 1.Print语句 16-2-2 顺序文件的读写操作 向文件写入内容使用 Print # 语句或Write#语句,在程序是数据输出。 1.Print语句 使用格式: PRINT #<文件号>,[<输出列表>] 说明:文件号为以写方式打开文件的文件号; 输出列表为用分号或逗号分隔的变量、常量、空格和定位函数序列。 2.Write命令 使用格式: Write #<文件号>,[<输出列表>] Write语句采用紧凑格式。数据项之间插入“,”,并给字符数据加上双引号。

例16.1 Print与Write语句输出数据结果比较。 Private Sub Form_Click() Dim Str As String, Anum As Integer Open "D:\Myfile.dat" For Output As 1 Str = "ABCDEFG" Anum = 12345 Print #1, Str, Anum Write #1, Str, Anum Close #1 End Sub print Write

例16.2 编程把一个文本框中的内容,以文件形式存入磁盘。 假定文本框的名称为Mytxt,文件名为Myfile.dat。 方法1:把整个文本框的内容一次性地写入文件。 Open "Myfile.dat" For Output As #1 Print #1, Mytxt.Text Close #1 方法2:把整个文本框的内容一个字符一个字符地写入文件。 For i=1 To len(Mytxt.Text) Print #1,Mid(Mytxt.Text,i,1); Next i

2. 顺序文件读操作 从现存文件中读入数据,应以顺序Input方式打开该文件。然后使用 Input# 语句、Line Input# 语句和Input( )函数读入到程序变量中。 使用格式如下: INPUT #文件号,变量列表 把读出的每个数据项分别存放到所对应的变量。 LINE INPUT #文件号,字符串变量 读一行到变量中,主要用来读取文本文件。 INPUT$(读取字符数, #文件号) 读取指定的数量的字符,作为函数的返回值。

3.与读文件操作有关的几个函数 (1)Lof 函数 LOF函数将返回某文件的字节数。例如,LOF(1)返回#1文件的长度,如果返回0值,则表示该文件是一个空文件。 (2)Loc 函数 Loc函数将返回在一个打开文件中读写的记录号;对于二进制文件,它将返回最近读写的一个字节的位置。 (3)Eof 函数 Eof 函数将返回一个表示文件指针是否到达文件末尾的标志。如果到了文件末尾,Eof 函数返回TRUE(-1),否则返回FALSE(0)。

例16.3 编程将一文本文件的内容读到文本框 假定文本框名称为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 Loop Close #1 回车换行

方法2:一次性读 txtTest.Text = "" Open "MYFILE.TXT" For Input As #1 txtTest.Text = Input( LOF(1),1) Close #1 方法3:一个个字符读 Dim InputData as String*1 Do While Not EOF(1) Input #1, InputData txtTest.Text = txtTest.Text + InputData Loop

例16.4 利用文件系统控件、组合框、文本框,制作一个文件浏览器。 要求:组合框限定文件列表框中显示文件的类型,如选定“*.Txt”文件。当在文件列表框选定欲显示的文件时,在文本框显示出该文件的内容。 程序运行效果如图

16-3 随机文件 16-3-1 随机文件的打开与关闭 1.打开随机文件 打开随机文件格式为: 16-3 随机文件 16-3-1 随机文件的打开与关闭 1.打开随机文件 打开随机文件格式为: OPEN FileName FOR Random [Access <Mode>][Lock] As filenumber [Len = reclength] 用OPEN命令以Random模式打开随机文件,同时指出记录的长度。文件打开后,可同时进行读写操作。 例如: Open "d:\abc.dat" For Random Access Read As #1 Len = 20

16-3-2 写随机文件 16-3-3 读随机文件 2.关闭随机文件 随机文件的关闭与关闭顺序文件相同。 Put [#]文件号,[记录号],变量名 将一个记录变量的内容写到指定的记录位置处。 忽略记录号,则表示在当前记录后的位置插入一条记录。 16-3-3 读随机文件 Get [#]文件号,[记录号],变量名 忽略记录号,则读出当前记录后的那一条记录。

16-4 二进制文件(了解) 1. 打开文件 Open "文件名" For Binary As #文件号 2. 写操作 16-4 二进制文件(了解) 1. 打开文件 Open "文件名" For Binary As #文件号 2. 写操作 Put [#]文件号,[位置],变量名 写入长度等于变量长度的数据。 3. 读操作 GET [#]文件号,[位置],变量名 从指定位置开始读出长度等于变量长度的数据存入变量中,数据读出后移动变量长度位置,如果忽略位置,则表示从文件指针所指的位置开始读出数据,数据读出后移动变量长度位置。

16-5 常用的文件操作语句和函数 1. 改变当前驱动器(ChDrive 语句) 格式:ChDrive drive 16-5-1 文件操作语句 1. 改变当前驱动器(ChDrive 语句) 格式:ChDrive drive 功能:改变当前系统驱动器。 说明: 如果drive为“”,则当前驱动器将不会改变;如果drive中有多个字 符,则ChDrive只会使用首字母。 例如:ChDrive "D" 及ChDrive "D:\" ChDrive "Dasd" 都是将当前驱动器设为D盘。

2. 改变当前目录(ChDir 语句) 3. 删除文件(Kill语句) 格式:ChDir path 功能:改变当前目录。 例如:ChDir "D:\TMP" 说明:ChDir语句改变缺省目录位置,但不会改变缺省驱动器位置。 例如,如果缺省的驱动器是C,则上面的语句将会改变驱动器D上的缺省目录,但是C仍然是缺省的驱动器: 3. 删除文件(Kill语句) 格式:Kill pathname 功能:删除文件。 说明:pathname中可以使用统配符“*”和“?”。 例如:Kill "*.TXT " Kill "C:\Mydir\Abc.dat"

4. 建立(MkDir 语句)和删除(RmDir 语句)目录 建立目录格式:MkDir path 功能:创建一个新的目录。 例如: MkDir "D:\Mydir\ABC" 删除目录格式:RmDir path 功能:删除一个存在的目录。 说明:只能删除空目录。 RmDir "D:\Mydir\ABC“ 说明: RmDir只能删除空子目录,如果想要使用RmDir来删除一个含有文件的目录或文件夹,则会发生错误。

5. 拷贝文件 ——FileCopy语句 6. 文件的更名 —— Name 语句 格式:FileCopy source , destination 功能:复制一个文件。 例如: FileCopy "D:\Mydir\Test.doc“, "A:\MyTest.doc" 说明: FileCopy语句不能复制一个已打开的文件。 6. 文件的更名 —— Name 语句 格式:Name oldpathname As newpathname 功能:重新命名一个文件或目录。 例: Name "D:\Mydir\Test.doc" As "A:\MyTest.doc" 说明:(1) Name具有移动文件的功能。 (2) 不能使用统配符“*”和“?”,不能对一个已打开的文件上使用Name语句。

SetAttr FileName, attributes 其参数含义: FileName:必要参数。一个文件名的字符串表达式。 格式: SetAttr FileName, attributes 其参数含义: FileName:必要参数。一个文件名的字符串表达式。      Attributes:必要参数。常数或数值表达式,其总和用来表示文件的属性。Attributes参数设置下表: 内部常数 数值 描 述 VbNormal 常规(缺省值) VbReadOnly 1 只读。 VbHidden 2 隐藏。 VbSystem 4 系统文件 VbArchive 32 上次备份以后,文件已经改变

16-5-2 文件操作函数 1. 获得当前目录——CurDir函数 格式:CurDir[(drive)] 说明:可选的Drive参数是一个字符串表达式,它指定一个存在的驱动器。如果没有指定驱动器,或Drive是零长度字符串(“”),则CurDir会返回当前驱动器的路径。 例如: str=CurDir(“E:”) 获得E盘当前目录路径,并赋值给变量Str

2.获得文件属性——GetAttr函数。 格式:GetAttr(FileName) 功能:返回代表一个文件、目录、或文件夹的属性的Integer数据。GetAttr返回的值及代表的含义下表 内部常数 数值 描 述 VbNormal 常规 vbReadOnly 1 只读 VbHidden 2 隐藏 VbSystem 4 系统文件 VbDirectory 16 目录或文件夹 VbArchive 32 上次备份以后,文件已经改变 Vbalias 64 指定的文件名是别名

3. FileDateTime函数 4.FileLen函数 格式:FileDateTime(FileName) 功能:返回一个Variant (Date),此值为一个文件被创建或最后修改后的日期和时间。 4.FileLen函数 格式:FileLen(FileName) 功能:返回一个Long,代表一个文件的长度,单位是字节。

5.Shell函数和Shell过程 在VB中,可以调用在DOS下或Windows下运行的应用程序: 函数调用形式: ID=Shell( FileName [,WindowType] ) 说明:执行一个可执行文件,返回一个Variant (Double),如果成功的话,代表这个程序的任务ID,它是一个唯一的数值,用来指明正在运行的程序。若不成功,则会返回 0 过程调用形式: Shell FileName [,WindowType])

FileName:是要执行的应用程序名字符串,包括盘符、路径,它必须是可执行的文件。 WindowType:为整型值,表示执行应用程序打开的窗口类型,其取值下表。 内部常量 值 描 述 VbHide 窗口被隐藏,且焦点会移到隐式窗口 VbNormalFocus 1 窗口具有焦点,且会还原到它原来的大小和位置 VbMinimizedFocus 2 (缺省)窗口会以一个具有焦点的图标来显示(最小化) VbMaximizedFocus 3 窗口是一个具有焦点的最大化窗口 VbNormalNoFocus 4 窗口会被还原到最近使用的大小和位置,而当前活动的窗口仍然保持活动 VbMinimizedNoFocus 6 窗口会以一个图标来显示。而当前活动的的窗口仍然保持活动

例如: (windows98下) ' 调用执行Windows系统中的记事本 i = Shell("C:\WINDOWS\NOTEPAD.EXE") ‘ 进入MS_DOS状态 j = Shell("c:\command.com", 1) 也可按过程形式调用: Shell "C:\WINDOWS\NOTEPAD.EXE" Shell "c:\command.com", 1 注意,上面指定的执行文件,可能因不同计算机系统,文件的路径有所不同。

16-6 文件系统对象 说明: 本节为选学内容,学习较好的学生自学。 在VB6.0中新增了文件系统对象(File System Object 缩写为FSO)模型,它提供了一整套对文件系统进行管理和操作的方法和属性,包括: 获得驱动器的信息,如驱动器列表、盘符、磁盘空间等。 获得文件夹的或文件的信息,如名称、创建、修改日期等。 检查指定的文件夹或文件是否存在及在什么位置。 文件夹或文件的删除、移动、复制等通常操作。 对文本文件的读写操作。