7.2文件的读写, z( |: c7 p, ^
1. 文件的有关概念
" a& |* ]2 i5 D# H( Q0 t8 h 记录:计算机处理数据的基本单位,由若干个相互关联的数据项组成。相当于表格中的一行。
% I* `* Z4 C0 y' F6 w9 z% D+ J. o" c 文件:记录的集合,相当于一张表。
/ Y! @: r5 h* o, q) N# \ 文件类型:顺序文件、随机文件、二进制文件。; Q5 s$ {5 B. ^2 t9 r; O+ m8 M- X
访问模式:计算机访问文件的方式,VB中有顺序、随机、二进制三种访问模式。4 [% V& p& ^* d- i
2. 顺序访问模式
) I/ m2 J4 |0 I/ ` 顺序访问模式的规则最简单,指读出或写入时,从第一条记录“顺序”地读到最后一条记录,不可以跳跃式访问。该模式专门用于处理文本文件,每一行文本相当于一条记录,每条记录可长可短,记录与记录之间用“换行符”来分隔。
2 y* a' c) x4 j7 Q: i M 顺序文件的写入步骤:打开、写入、关闭; 读出步骤:打开、读出、关闭。, J9 }: V# d8 V1 z1 P) d: _ E5 \9 w
(1)打开文件 V! P3 m( X$ u5 w3 y$ M
打开文件的命令是Open,格式为:
) y$ O% K9 F$ w, m( |% ] Open “文件名” For 模式 As [#] 文件号 [Len=记录长度]
4 b' o3 G' @8 P# d) g: K; G% K5 | 说明:
# |' b5 ]0 G( O' V- _2 {0 } 1)文件名可以是字符串常量也可以是字符串变量
" I; L3 ~5 T8 x- T& Y7 h" e 2)模式可以是下面之一:2 d8 i6 W R7 V/ b0 C
OutPut:打开一个文件,将对该文件进行写操作: L/ F3 T9 }, j! g( O
Input:打开一个文件,将对该文件进行读操作+ ]5 E8 w9 Y2 g8 ?8 M B
Append:打开一个文件,将在该文件末尾追加记录% I# q: u% z& U& B, f5 t
3) 文件号是一个介于1-511之间的整数,打开一个文件时需要指定一个文件号,这个文件号就代表该文件,直到文件关闭后这个号才可以被其他文件所使用。可以利用FreeFile()函数获得下一个可以利用的文件号。
; {9 Z! ?/ g, @- ~2 @9 [) a1 V- z4 ^9 I 例: Open "D:\sj\aaa" For Output As #1; E2 V. s4 c* x
意思是:打开D:\SJ下aaa文件供写入数据,文件号为#1
$ z1 a. F7 g; c) ]& _& h+ b/ D: | (2)写操作
" M9 G4 O ?: D; b Z 将数据写入磁盘文件所用的命令是:Write# 或Print#。
$ v3 Q; p; g E. T, {6 b 语法格式:" b$ C7 _" g8 J+ b
1) Print #文件号,[输出列表]
7 X9 a" f4 E5 ^# V( D8 | 例: Open “D:\SJ\TEST.DAT” For Output As #1
/ j: F" C2 {5 S- D1 |* j Print #1,Text1.Text '把文本框的内容一次性写入文件* X: }7 n3 J& E0 g2 N0 o- f
Close #1
Y( o0 i, C9 _5 K5 u( R7 @2 D 2)Write #文件号,[输出列表]
/ P. c" `/ h& E, t1 q, X, h 其中的输出列表一般指用逗号,分隔的数值或字符串表达式。Write #与Print #的功能基本相同,区别是Write #是以紧凑格式存放,在数据间插入逗号,并给字符串加上双引号。
- ?: m$ }# V( T7 a6 |0 Q (3) 关闭文件1 W+ f" y4 _- R% v4 j* [1 j
结束各种读写操作后,必须将文件关闭,否则会造成数据丢失。关闭文件的命令是Close。
- W3 d/ F; Q5 R1 W& P0 k Close [#]文件号[,[#]文件号]……
$ A; M& Y5 t/ j1 ^ 例: Close #1,#2,#34 n$ j' ?8 B7 L
(4) 读操作" o. q* l9 P. J# P
1) Input #文件号,变量列表
: }: A. I+ i$ g" @' j4 k 作用:将从文件中读出的数据分别赋给指定的变量。
1 j2 g1 Y8 n" r5 r' {" {% I' m% P1 Z f% q# A
注意:与Write #配套才可以准确地读出。 |