
VB编程班第十七课.docx
11页VB 编程班第十七课1、 介绍: 文件操作顺序文件,随机文件,二进制文件的操作2、 说明:顺序文件打开文件读出或写入关闭文件在程序中对文件的操作,通常按 3 个步骤进行:顺序文件的打开与关闭1打开顺序文件其使用格式如下:Open FileName For [Input | Output | Append] [Lock]As filenumber [Len = Buffersize]各参数的意义Open 文件名 [For 打开方式 ] As [#]文件号(1) 文件名2) 打开方式包括以下 3 种Input Output Append(3) 文件号是一个1~511 之间的整数它用来代表所打开的文件,文件号可以是整数或数值型变量例如:① Open "d:\shu1.dat" For Input As #1该语句以输入方式打开文件shu1.dat,并指定文件号为 1② Open "d:\shu2.dat" For Output As #5该语句以输出方式打开文件shu2.dat,即向文件shu2.dat 进行写操作,并指定文件号为 5③ Open "d:\shu3.dat" For Append As #7该语句以添加方式打开文件shu3.dat,即向文件shu3.dat 添加数据,并指定文件号为 7。
例如: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 #12、关闭文件——Close 语句使用格式如下:Close [filenumberlist]其中:filenumberlist:可选项,为文件号列表,如:#1, #2, #3,如果省略,则将关闭Open 语句打开的所有活动文件例如: Close #1,#2,#3顺序文件的读写操作Close向文件写入内容使用 Print # 语句或Write#语句,在程序是数据输出1.Print 语句使用格式:PRINT #<文件号>,[<输出列表>]说明:文件号为以写方式打开文件的文件号;输出列表为用分号或逗号分隔的变量、常量、空格和定位函数序列2.Write 命令使用格式:Write #<文件号>,[<输出列表>]Write 语句采用紧凑格式数据项之间插入“,,并”给字符数据加上双引号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 #1End Sub编程把一个文本框中的内容,以文件形式存入磁盘。
假定文本框的名称为Mytxt,文件名为Myfile.dat方法 1:把整个文本框的内容一次性地写入文件Open "Myfile.dat" For Output As #1Print #1, Mytxt.TextClose #1方法 2:把整个文本框的内容一个字符一个字符地写入文件Open "Myfile.dat" For Output As #1For i=1 To len(Mytxt.Text)Print #1,Mid(Mytxt.Text,i,1); Next iClose #12. 顺序文件读操作从现存文件中读入数据,应以顺序 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)编程将一文本文件的内容读到文本框假定文本框名称为txtTest,文件名为 MYFILE.TXT可以通过下面三种方法来实现方法 1:一行一行读txtTest.Text = ""Open "MYFILE.TXT" For Input As #1 Do While Not EOF(1)Line Input #1, InputDatatxtTest.Text = txtTest.Text + InputData+vbCrLf LoopClose #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 txtTest.Text = ""Open "MYFILE.TXT" For Input As #1Do While Not EOF(1)Input #1, InputDatatxtTest.Text = txtTest.Text + InputData LoopClose #1利用文件系统控件、组合框、文本框,制作一个文件浏览器。
要求:组合框限定文件列表框中显示文件的类型,如选定“*.Txt文”件当在文件列表框选定欲显示的文件时,在文本框显示出该文件的内容Private Sub Combo1_Click() Dim filetype As String Select Case Combo1.TextCase "所有文件(*.*)"filetype = "*.*" Case "窗体文件(*.frm*)"filetype = "*.frm*"Case "文本文件(*.txt*)" filetype = "*.txt*"End Select File1.Pattern = filetypeEnd SubPrivate Sub Dir1_Change() File1.Path = Dir1.PathEnd SubPrivate Sub Drive1_Change() Dir1.Path = Drive1.Drive End SubPrivate Sub File1_Click()Dim st As String, fpath As String Text1.Text = ""If Right(Dir1.Path, 1) = "\" Then fpath = Dir1.Path & File1.FileName Elsefpath = Dir1.Path & "\" & File1.FileName End IfOpen fpath For Input As #1 Do While Not EOF(1)Line Input #1, stText1.Text = Text1.Text + st + vbCrLf LoopClose #1 End SubPrivate Sub Form_Load() Combo1.AddItem "所有文件(*.*)" Combo1.AddItem "窗体文件(*.frm*)" Combo1.AddItem "文本文件(*.txt*)" Combo1.ListIndex = 2End Sub随机文件随机文件的打开与关闭1. 打开随机文件打开随机文件格式为:OPEN FileName FOR Random [Access
文件打开后,可同时进行读写操作例如:Open "d:\abc.dat" For Random Access Read As #1 Len = 20 2.关闭随机文件随机文件的关闭与关闭顺序文件相同写随机文件Put [#]文件号,[记录号],变量名将一个记录变量的内容写到指定的记录位置处忽略记录号,则表示在当前记录后的位置插入一条记录读随机文件Get [#]文件号,[记录号],变量名忽略记录号,则读出当前记录后的那一条记录设计一个简单的学生成绩管理程序,使用随机文件存储学生信息程序的运行界面下图所示,该程序的具有数据添加、修改、删除及学生信息顺序查询等功能二进制文件1 打开文件Open "文件名" For Binary As #文件号2. 写操作Put [#]文件号,[位置],变量名 写入长度等于变量长度的数据3. 读操作GET [#]文件号,[位置],变量名从指定位置开始读出长度等于变量长度的数据存入变量中,数据读出后移动变量长度位置,如果忽略位置,则表示从文件指针所指的位置开始读出数据,数据读出后移动变量长度位置编程序实现将D 盘根目录中的文件Abc.dat 复制到E 盘,且文件名改为Myfile.dat。
Dim char As Byte ' 打开源文件Open "D:\Abc.dat" For Binary As # 1' 打开目标文件Open "E:\Myfile.dat" For Binary As # 2 Do While Not EOF(1)Get #1, , char ' 从源文件读出一个字节Put #2, , char ' 将一个字节写入目标文件Loop Close#1, #2文件操作语句1. 改变当前驱动器(ChDrive 语句) 格式:ChDrive drive功能:改变当前驱动器说明:如果drive为““,则当前驱动器将不会改变;如果drive 中有多个字 符,则ChDrive只会使用首字母例如:ChDrive "D" 及 ChDrive "D:\" 和 ChDrive "Dasd" 都是将当前驱动器设为D 盘2. 改变当前目录(ChDir 语句) 格式:ChDir path功能:改变当前目录例如:ChDir "D:\TMP"说明:ChDir 语句改变缺省目录位置,但不会改变缺省驱动器位置例如,如果缺省的驱动器是 C,则上面的语句将会改变驱动器D 上的缺省目录,但是C 仍然是缺省的驱动器:2. 删除文件(Kill 语句) 格式:Kill pathname功能:删除文件。
说明:pathname 中可以使用统配符“*”和“?”例如:Kill "*.TXT "Kill "C:\Mydir\Abc.dat"4. 建立(MkDir 语句)和删除(RmDir 语句)目录建立目录格式。
