VB6.0文件读写攻略
作者:iamben2506.1 文件及其结构
6.2 顺序文件
6.3 随机文件
6.4 二进制文件
-------------------------------------------------------------------------
6.1 文件及其结构
文件:存储在外部介质上数据的集合。
按名存取
1. 记录
由若干个相互关联的数据项组成。
例如,由学生的学习成绩信息组成的记录:
2. 文件及其种类
文件是记录的集合
(1) 顺序文件
按顺序依次把记录写入文件;
按顺序依次把记录读出来。
(2) 随机文件
随机文件可以直接访问文件中的任意一个记录。
记录长度相同
根据记录号访问
(1) ASCII码文件
数据是以ASCII码进行编码储存的。
(2) 二进制文件(Binary File)
数据是以二进制格式进行编码保存的。
6.2 顺序文件
1. 打开文件
Open "文件名" As [#]文件号
(1) 模式
OUTPUT:写操作
INPUT:读操作
APPEND:追加到文件未尾
(2) 操作类型
READ:只读
WRITE:只能写
READWRITE:读写皆可
(3) 锁定:用于多进程环境,是否允许其他进程对打开的文件进行 操作
Shared(缺省):共享
Lock Read:禁止其他进程对该打开的文件进行读操作
Lock Write:禁止其他进程对该打开的文件进行写操作
Lock Read Write:禁止其他进程对该打开的文件进行读写操作
(4) 文件号
1~511,可以用FreeFile函数获得下一个可利用的文件号。
(5) 记录长度
小于或等于32767的整数。
它指定数据缓冲区的大小。
例如,打开C:\VB\SCORE,供写入数据,指定文件号为#1。
命令:OPEN "C:\VB\SCORE" FOR OUTPUT AS #1
2. 写入命令
Print #文件号,
输出列表的意义同Print方法。
保存文本框
假定文本框的名称为txtTest,文件名为TEST.DAT。
方法1:把整个文本框的内容一次性地写入文件。
Open "TEST.DAT" For Output As #1
Print #1, txtTest.Text
Close #1
方法2:把整个文本框的内容一个字符一个字符地写入文件。
Open "TEST.DAT" For Output As #1
For i=1 To len(txtTest.Text)
Print #1,Mid(txtTest.Text,i,1);
Next i
Close #1
Write #文件号,
输出列表:用“,”分隔的表达式。
以紧凑格式存放,即在数据项之间插入“,”,并给字符串加上双引号。
例如,命令:Write #1,"One","Two",123
内容:"One","Two",123
3. 关闭文件
Close [[#]文件号][, [#]文件号]...
例如,Close #1, #2, #3
Close 关闭所有打开的文件
4. 读顺序文件
INPUT #文件号,变量列表
把读出的每个数据项分别存放到所对应的变量。
以“,”为分界符。
LINE INPUT #文件号,字符串变量
读一行到变量中,主要用来读取文本文件。以回车为分界符。
INPUT$(读取字符数,#文件号)
随意读取字符
5. 函数
LOF(文件号):返回文件的长度(总字节数)。
LOC(文件号):返回读写位置。
随机文件:返回最近读写的记录号;
二进制文件:返回最近读写的一个字节的位置;
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, 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
txtTest.Text = ""
Open "MYFILE.TXT" For Input As #1
Do While Not EOF(1)
Input #1, InputData
txtTest.Text = txtTest.Text + InputData
Loop
Close #1
6.3 随机文件
1. 打开
Open "文件名" For Random As #文件号
2. 写操作
Put [#]文件号,,变量名
将一个记录变量的内容写到指定的记录位置处。
忽略记录号,则表示在当前记录后的位置插入一条记录。
3. 读操作
Get [#]文件号,,变量名
忽略记录号,则读出当前记录后的那一条记录。
例6.3 建立随机文件。
Type Record
ID As Integer
Name As String * 20
End Type
Dim MyRecord As Record
Open "TESTFILE" For Random As #1 Len = Len(MyRecord)
For RecordNumber = 1 To 5
MyRecord.ID = RecordNumber
MyRecord.Name = "My Name"
Put #1, RecordNumber, MyRecord
Next RecordNumber
Close #1
例6.4 用Get命令读出上例建立的随机文件中第三条记录。
Type Record
ID As Integer
Name As String * 20
End Type
Dim MyRecord As Record
Open "TESTFILE" For Random As #1 Len =Len(MyRecord)
Position = 3
Get #1, Position, MyRecord
Print Myrecord.Id Name
Close #1
6.4 二进制文件
1. 打开
Open "文件名" As #文件号
2. 写操作
Put [#]文件号,,变量名
写入长度等于变量长度的数据。若忽略位置,表示从文件指针所指的位置写入数据,指针移动变量长度的位置
3. 读操作
GET [#]文件号,,变量名
从指定位置开始读出长度等于变量长度的数据存入变量中,数据读出后移动变量长度位置,如果忽略位置,则表示从文件指针所指的位置开始读出数据,数据读出后移动变量长度位置。 INPUT (字节数,#文件号)
返回从文件中读出的字符串。
4. SEEK函数
SEEK(文件号)
随机文件:返回下一个要写入或读出的记录号;
二进制文件或顺序文件:返回下一个写入或读出的字节位置。 5. SEEK命令
Seek [#]文件号, 位置
设置下一个要写入或读出的位置。
例6.6 建立一个文件名为STUDENT.DAT二进制文件。
Sub Form_Click( )
Dim Name As String * 10
Open "Student.Dat" For Binary As #1
Do
NAME = InputBox("请输入学生姓名:")
Put #1, , NAME
YES = InputBox("继续输入吗?(Y/N)")
Loop While UCase(YES) = "Y"
Close #1
End Sub
例6.7 用INPUT函数读出例6.6建立的文件。
Sub Form_Click()
Dim Name As String * 10
Open "Student.Dat" For Binary As #1
Flength = Lof(1)
Char = Input(Flength, #1)
Print Char
Close #1
End Sub
楼主你太好了
static/image/common/sigline.gif
SEO教程 1121.100181.com 网站优化 SEO SEO优化 优化网站
Where is Administration ict.ivfan.com??
???? ??? 2020-5-25 19:41 static/image/common/back.gif??????
Can I contact Administration?
It is important.
Regards.
Where is Administration ict.ivfan.com??
Victorzet ??? 2021-8-27 20:33 static/image/common/back.gifCan I contact Administration?
It is important.
Regards.
Where is admin?
I'ts important.
Regards.
页:
[1]