如何用vb写vb读写txt文件操作作

如何使用VB.NET FileInfo类对文件操作
用圣才电子书APP或微信扫一扫,在手机上阅读本文,也可分享给你的朋友。
  你用电脑就要对文件和文件系统操作,这是不可避免的,那拷贝、移动和删除文件和文件夹的功能是很有用的。在网上收到一些关于文件操作的列子,现在和大家分享一下,以下的示例代码将向您展示如何使用VB.NET FileInfo来拷贝、移动和删除文件,以及如何使用DirectoryInfo来移动和删除文件夹。(注意:为了运行这些示例,您需要将这条语句:Imports System.IO,添加到您的表单或模块的最顶部。)
  VB.NET FileInfo示例
  拷贝一个文件
1.   Dim fFile1 As New FileInfo(&C:abc1.txt&)
3.   fFile1.CopyTo(&C:abc2.txt&, True)
  我们将fFile1变量定义为一个FileInfo对象并设定它指向文件系统中的一个目录,为了拷贝一个文件,我们使用FileInfo对象中的CopyTo方法并指明我们计划要拷贝的目标文件的全名。
  移动一个文件
1.   Dim fFile1 As New FileInfo(&C:abc1.txt&)
3.   fFile1.MoveTo(&C:abc3.txt&)
  我们将fFile1变量定义为一个FileInfo对象并设定它指向文件系统中的一个目录,为了拷贝一个文件,我们使用FileInfo对象中的CopyTo方法并指明我们计划要移动的目标文件的全名。
  删除一个文件
1.   Dim fFile1 As New FileInfo(&C:abc1.txt&)
3.   fFile1.Delete()
  我们将fFile1变量定义为一个FileInfo对象并设定它指向文件系统中的一个目录,为了删除一个文件,我们使用FileInfo对象中的Delete方法。
  VB.NET FileInfo DirectoryInfo示例
  移动一个文件夹
1.   Dim dDir1 As New DirectoryInfo(&C:Folder1&)
3.   dDir1.MoveTo(&C:Folder2&)
  我们将dDir1变量定义为一个DirectoryInfo对象并设定它指向文件系统中的一个目录,为了移动一个文件夹,我们使用DirectoryInfo对象的MoveTo方法,并指明我们所移动的文件夹的完整目标路径。
  删除一个文件夹
1.   Dim dDir1 As New DirectoryInfo(&C:Folder1&)
3.   dDir1.Delete()
  我们将dDir1变量定义为一个DirectoryInfo对象并设定它指向文件系统中的一个目录,为了删除一个文件夹,我们使用DirectoryInfo对象的Delete方法。(您只能删除一个空的文件夹,如果文件夹含有文件,您将不能删除它知道您清空它为止。)
  作者:未知       来源:网络
小编工资已与此赏挂钩!一赏一分钱!求打赏↓ ↓ ↓
如果你喜欢本文章,请赐赏:
已赐赏的人
我的电子书> VB怎样读写有文件头信息的二进制文件,该如何解决
VB怎样读写有文件头信息的二进制文件,该如何解决
pring17 & &
发布时间: & &
浏览:2 & &
回复:1 & &
悬赏:0.0希赛币
VB怎样读写有文件头信息的二进制文件'1、我用自定义的变量只能读写没有文件头的二进制文件?& '2、用Random模式打开读取记录总是从第一个字节开始读文件不能指定从某个位置开始读取?'3、写入的二进制文件的字段间隔标识是二个字节的,怎样才能使用一个字节的间隔标识?Public Type WJTXX &
版本 As String * 18 &
密码 As String * 18 &
标识 As Boolean &
定长 As IntegerEnd TypePublic Type ZDYZFC &
bm As String &
mc As String &
dw As String &
jg As Double &
xs As Double &
bz As StringEnd TypeDim WJNL As WJTXXDim SJCL As ZDYZFCPrivate Sub Command1_Click() &
WJNL.版本=&V1.0& &
WJNL.密码=&123456& &
WJNL.标识= True &
WJNL.定长= 200 &
Open App.Path & &\.bat& For Random As #1 Len = 300
' Random模式打开 &
Put #1, , WJNL &
Seek #1, 201 &
For i = 1 To MSFlexGrid1.Rows - 1&
SJCL.bm = MSFlexGrid1.TextMatrix(i, 1) &
SJCL.mc = MSFlexGrid1.TextMatrix(i, 2) &
SJCL.dw = MSFlexGrid1.TextMatrix(i, 3) &
SJCL.jg = Val(MSFlexGrid1.TextMatrix(i, 4)) &
SJCL.xs = Val(MSFlexGrid1.TextMatrix(i, 5)) &
SJCL.bz = Mid(MSFlexGrid1.TextMatrix(i, 6)) &
Put #1, i, SJCL &
Close #1End SubPrivate Sub Command2_Click() &
Open App.Path & &\.bat& For Random As #1 Len = 300
' Random模式打开 &
Get #1, , WJNL &
Text1= WJNL.版本 &
Text2= WJNL.密码 &
Text3= WJNL.标识 &
Text4= WJNL.定长 &
Do While Not EOF(1) &
Seek #1, 201 &
Get #1, i, SJCL &
MSFlexGrid1.Rows = MSFlexGrid1.Rows + 1 &
MSFlexGrid1.TextMatrix(i, 0) = i &
MSFlexGrid1.TextMatrix(i, 1) = Trim(SJCL.bm) &
MSFlexGrid1.TextMatrix(i, 2) = Trim(SJCL.mc) &
MSFlexGrid1.TextMatrix(i, 3) = Trim(SJCL.dw) &
MSFlexGrid1.TextMatrix(i, 4) = IIf(SJCL.jg && 0, SJCL.jg, &&) &
MSFlexGrid1.TextMatrix(i, 5) = IIf(SJCL.xs && 0, SJCL.xs, &&) &
MSFlexGrid1.TextMatrix(i, 6) = Trim(SJCL.bz) &
i = i + 1 &
Close #1End Sub
比如文件头有12个字节,则:dim FileHeader(11) as byteopen &XXX.bin& for binary as #1
get #1,,fileheader()close #1这fileheader()里的12个字节就是了.lovekiko & &
15:42:36 & &
& & (0)(0)引用
本问题标题:
本问题地址:
温馨提示:本问答中心的任何言论仅代表发言者个人的观点,与希赛网立场无关。请对您的言论负责,遵守中华人民共和国有关法律、法规。如果您的言论违反希赛网问答中心的规则,将会被删除。
暂无合适的专家
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&Vb教程-文件读写(特别好,转来的,自己学习)
在程序设计中,文件是十分有用和不可缺少的。由应用程序产生或处理过的数据,往往在应用程序
结束以前仍需保留,或者为了存取方便,提高上机效率,需要将由输入设备输入的数据保存在存储介质上(如磁盘,磁带等)。这些数据是以文件的方式保存在存储
介质上的,需要读取数据时可以从外存储器调出,需要保存时可以由内存写到外存。在程序中可直接对文件进行处理,可以保存、访问它所处理的数据,也可以使其
它程序共享这些数据。
VB具有强大的文件处理能力,可以处理顺序文件、随即文件和二进制文件,同时提供了与文件处理有关的控件,也提供了大量与文件管理有关的语句、函数。
本章介绍文件的结构、三种文件类型、VB对文件和目录维护的主要语句和函数、VB程序对文件的操作方法(文件系统对象)。
在VB程序中,需要输入少量数据,可通过程序中直接赋值来完成,或通过输入函数以获取数据
(如使用函数InputBox),但输入大量的数据时,这些方法易造成数据输入和数据存储不方便,在重复输入相同的数据时,易造成数据不一致。鉴于这种情
况,可以将这些大量的数据存储在一个或多个文件中,使用时再从相应的文件中读取。
通常情况下,计算机处理的大量数据都是以文件的形式存放在外部介质(如磁盘)上,操作系统也
是以文件为单位对数据进行管理。当访问外部介质上存储的数据时,先按文件名找到所需要的文件,再从该文件中读取相关数据;在外部介质中存入数据时,也必须
先建立一个文件,才能向它写入数据。
在介绍文件结构和类型之前,简单介绍对文件命名的基本规则。在Visual
Basic中,文件说明的一般格式为:
设备名:文件引用名
例如: D:myfile.abc
这里的“D:”是设备名,而"myfile.abc”是文件引用名。
设备名是存放文件的设备的名称,如磁盘、磁带、打印机等。在微机中,存放文件的主要设备是磁盘,其名称通常为A:,B:,C:,D:等,分别代表A,B,C,D等驱动器。
在DOS环境下,文件引用名由两部分组成,即文件基本名和扩展名。其中文件基本名常以字母开头,最多不超过8个字符;扩展名是可选的,最多不超过3个字符;在文件基名和扩展名之间有一个圆点。通常把这种文件名称为“8.3”格式。如上例中的“myfile.abc”
在Windows中可以使用长文件名,其长度最多不超过255个字符,并能自动维护传统的“8.3”格式的文件名。
下列字符可用做文件基本名和扩展名:
(1)英文字母:a~z、A~Z
(2)数字:0~9
(3)特殊字符:$ # & @ ! % (
) _ - | ,^ ~ /
Basic窗体文件的扩展名为.frm,工程文件的扩展名为.vbp,标准模块文件的扩展名为.bas,可执行文件的扩展名为.exe,等等。用户可使用自己的扩展名,但不要与系统使用的扩展名相矛盾。
完整的文件说明由设备名和文件引用名构成。对于磁盘文件来说,还可以含有路径。例如:
D:\textfile\exercise.txt
& ..\grades.qtr
6.1.1 文件的结构
为了有效地对数据进行存储和读取,文件中的数据必须以某种特定的格式存储,这种特定的格式就是文件的结构。
Basic的文件由记录组成,记录由字段组成,字段又由字符组成。
1.字符(character):是构成文件的最基本单位。字符可以是数字、字母、特殊符号或单一
字节。这里所说的“字符”一般为西文字符,一个西文字符用一个字节存放。如果为汉字字符,包
括汉字和“全角”字符,则通常用两个字节存放。也就是说,一个汉字字符的存储大小相当于两个西文字符的存储大小。一般把用一个字节存放的西文字符称为“半
角”字符,而把汉字和用两个字节存放的字符称为“全角”字符。注意,VisualBasic
6.0支持双字节字符,当计算字符串长度时,一个西文字符和一个汉字都作为一个字符计算,但它们所占的内存空间是不一样的。例如,字符串“VB程序设计语
言”的长度为8,而所占的字节数为14。
字段(field):也称域。字段由若干个字符组成,用来表示一项数据。例如邮政编码“450002”就是一个字段,它由6个字符组成;而姓名“张前”也是一个字段,它由2个汉字组成。
3.记录(record):由一组相关的字段组成。例如在通信录中,每个人的姓名、单位、地址、电话号码、邮政编码等构成一个记录。
4.文件(file):文件由记录构成,一个文件含有一个以上的记录。例如在通信录文件中有129个人的信息,每个人的信息是一个记录,129个记录构成一个文件。
例如,一居民区人员登记可整理一个二维表的形式,如表6-1所示。在这个表中,每位居民的信息是一个记录,它由“身份证号”、“姓名”、“性别”、“籍贯”、“职业”、“联系方式”等6个数据项构成。
表6-1&& 居民区人员登记表(jmdjb.dat)
读者可以根据以上定义分别找出各记录的数据信息。需要注意的是:其中有一个字段称为“关键字”,能够唯一的识别出对应的记录,如表6-1中的“身份证号”字段。
6.1.2 文件的种类和存取类型
VB有三种文件:顺序文件、随机文件和二进制文件。存取一个文件时,可根据文件所含数据类型的不同,采用不同的存取方式,对应的文件存取类型有顺序存取、随机存取和二进制存取。
顺序文件:存入一个顺序文件时,依序把文件中的每个字符转换为相应的ASCII码存储;读取数据时必须从文件的头部开始,按文件写入的顺序,一次全部读出。不能只读取它中间的一部分数据。用顺序存取方式形成的文件称为顺序文件,顺序存取方式规则最简单。
顺序存取方式适合以整个文件为单位存取的场合。主要用于文本文件,也最适合于文本文件,因为
处理文本数据时,都是整篇文章调出来修改,然后再整篇文章重新保存,很少有只调出第几行,修改后再存回第几行的情况。采用顺序存取方式的例子很多,如
Windows的记事本、书写器等。
顺序文件也可以记录为单位,每个记录也可划分为若干个字段,但这样的数据结构一般不按顺序方式存取。
随机文件:随机存取的文件由一组固定长度的记录组成,每条记录分为若干个字段,每个字段的长度固定,可以有不同的数据类型。一般用自定义数据类型来建立这些记录。用随机存取方式形成的文件称为随机文件。
随机文件中每个记录有一个记录号,通过指定记录号,可随机地访问每一笔数据,不象顺序文件那样必须按顺序存取。随机文件适合于以记录为单位存取的场合。
二进制文件:二进制存取方式可以存储任意希望存储的数据。它与随机文件很类似,但没有数据类型和记录长度的限制。用二进制存取方式形成的文件称为二进制文件。
在随机文件中,有些字符型字段不同记录的长度相差很多,但为了使最长的字符串能够存入,就必须把该字段的长度说明为最长字符串的长度,这样就会浪费了大量的存储空间。为了节省存储空间,可以使用二进制存取文件。
对二进制文件,在TYPE类型说明中先不说明长度,待字符串存入时,再计算字符串长度,并用
2个字节保存这个长度;读取数据时,先读取长度,再读取字符。因而在记录长度变动较大的情况,用二进制存取方式可节约存储空间。但另一方面,因为它没有固
定长度的记录,不能向随机文件那样任意取出第几条记录,必须建立一个索引表来指示每个记录的起始地址,这就给编程带来了困难。
然而VB在其发展的过程中,已有了强大的数据库功能,可利用Data控件、ADO数据控件等使应用程序与数据库连接,从而方便地对数据来回读写,完全可以代替文件直接访问的功能(可参看有关“VB与数据库连接”章节内容)。
6.2 顺序文件
在对使用旧文件或创建新文件前,首先要说明文件存储位置和名字,并指定对文件的处理方式,即指要确定对文件操作的有关属性的属性值。无论用哪种存取方式对数据文件进行操作,都必须先打开文件,然后向文件中写入或读出数据,最后关闭文件。
访问一个顺序文件时,通常是三个步骤:打开文件(若此文件不存在,则要建立一个新的文件)、读取/写入数据、关闭文件。
6.2.1 顺序文件的打开与关闭
1.打开文件语句:Open
语法格式如下:
&文件名&& For
&打开方式& As& #
&文件号&& [ Len = 缓冲区大小
●Open、For、As、Len等是VB关键字。
●文件名:指定打开的文件名(文件名用字符串表示),包括盘符、路径、文件主名及扩展名。例如:”E:\MF\Test.txt”。
●打开方式方式:指定文件的打开方式,打开文件后,只能按指定的方式进行一种操作。打开一个顺序文件有三种方式可选:
◆Input:打开文件后,从文件中读取数据
◆Output:打开文件后,向文件中写入数据,即重写一个顺序文件
◆Append:打开文件后,向文件末尾添加数据
若指定Input方式,则当指定文件不存在时产生一个错误;若指定Output或Append方式,则当文件不存在时建立该文件,文件已存在时写入的数据,前者覆盖,后者追加。所以Open具有建立和打开文件的双重功能。
对同一文件用一种方式打开后,在关闭之前,不能再以另一种方式打开。
●文件号:VB应用程序每打开一个文件,必须指定一个文件号,且不能与其它打开的文件占用的 文件号重复。文件号的范围是1 -
511之间的整数。打开文件后,指定的文件号就与该文件相关联,程序通过文件号来对文件进行读、写操作,直到关闭文件。关闭文件后,该文件号被释放,可供
打开其他文件时使用。
如果在程序中已打开多个文件(此时占用的文件号未必连续),则再打开文件时,为了避免文件号重复,可使用FreeFile函数,该函数返回当前程序未被占用的最小的文件号,可通过把函数值赋给一个变量来取得这个文件号。例如,执行下面的代码,
&&& FileNumber =
Open& "E:\VB\Exercise.TXT"&
For& Output& As&
# FileNumber
则在E盘VB文件夹下建立Exercise.TXT数据文件,文件号为FileNumber,如果这个文件已经存在,则原有文件被覆盖;如果执行下面的代码,
&&& FileNumber =
Open& "E:\VB\Exercise.TXT"&
For& Append& As&
# FileNumber
也在E盘VB文件夹下建立Exercise.TXT数据文件,文件号为FileNumber,但当该文件已经存在时,新写入的数据追加到原有数据的后面。
●缓冲区大小:当在文件与程序之间拷贝数据时,选项len参数指定缓冲区的字符数,其范围为1 -
32767,缺省值为512字节。例如,执行下面的代码,
Open& "E:\VB\Exercise.TXT"&
For& Input& As&
# 1& len = 1024
则打开E盘VB文件夹下的数据文件Exercise.TXT,为读取数据作准备,与之关联的文件号为1,读写缓冲区为1024字节。
在程序中,获取文件名可通过【打开】文件或文件【另存为】对话框实现。例如,下面的代码从【打开】文件对话框中打开一个文件,以便从该文件中读取数据:
CommonDialog1.Filter = "All Files
(*.*)|*.*|Text Files (*.txt)|*.txt| Batch Files (*.bat)|*.bat"
CommonDialog1.FilterIndex = 2
CommonDialog1.ShowOpen
Filename = CommonDialog1.Filename
F = FreeFile
Open Filename For Input As F
而下面的代码则从文件【另存为】对话框中输入文件名,以便建立从文件名框中输入或选定的文件:
CommonDialog1.Filter = "All Files
(*.*)|*.*|Text Files (*.txt)|*.txt| Batch Files (*.bat)|*.bat"
CommonDialog1.FilterIndex = 2
CommonDialog1.ShowSave
Filename = CommonDialog1.Filename
F = FreeFile
Open Filename For Otput As F
建立【打开】文件或文件【另存为】对话框用公共对话(CommonDialog)控件,见相关章节。
注意:用公共对话控件可创建【打开】文件和文件【另存为】对话框,但它只能为建立和访问的文件输入文件名提供一个可视的界面,对话框本身不能完成打开文件和保存文件的功能,须编写代码完成。
2、 关闭文件语句:Close
语法格式为:
Close& [ #文件号] [, #文件号] … …
该语句的功能是关闭指定的文件,释放缓冲区;若不指定文件号,则关闭所有打开的文件。
程序运行结束时,会自动关闭所有打开的文件,但对打开的文件完成操作后及时关闭该文件是个好习惯,不仅节约内存,也避免意外情况丢失数据。程序运行时将写入文件的数据均放在文件读写缓冲区,待整批写入文件。
6.2.2 顺序文件的写操作
要将程序中的数据写到一个顺序文件,先打开文件以进行顺序输出或添加(注意此时的选用打开方式,选择Output则覆盖原来文件,选择Append则在原来文件后添加数据),可用下面的命令语句写入数据。
1、 Print # 语句:用于为顺序文件写入数据
语法格式为:
Print& # 文件号 [, 输出项表]
其中输出项表是要输出的表达式或表达式列表,输出格式同Print方法。
例如,下面的代码在E盘VB文件夹下建立Exercise.TXT数据文件,并往文件中输入字符,最后关闭文件:
"E:\VB\Exercise.TXT"& For Output As
#1& ‘打开文件以便输出
#1,”顺序文件写入数据测试”&&&&&&&&&&&
‘向文件中写入字符串”This is a test”
#1,&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
‘输出一个空行
Print #1,”Zone 1”;T”Zone
2”&&&&&&&&&&&&&&
‘在两个打印区输出
Print #1,Spc(5);”5 leading
spaces”&&&&&&&&&&&&&
‘先输出5个空格,再输出字符串
#1,Tab(10);”Hello”&&&&&&&&&&&&&&&&&&&&&
‘在第10列上输出字符串
#1&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
‘关闭文件
下面的代码把文本框Text1中的内容写到一个顺序文件:Exercise.TXT,存放于D:\:
Open "D:\Exercise.TXT" For Output As
Print #2, Exercise.Text
2、 Write # 语句:将记录写入文件
语法格式为:
Write # 文件号[,表达式列表]
该语句适用于向划分了字段的记录格式的文件写入数据。“表达式表”中的每个表达式写入一个字段,一个Write #
语句一次写入一个记录。表达式表中包含多个表达式时以逗号分隔。缺省表达式时写入一个空行。
语句写入的数据各个字段间自动加逗号分隔符,字符型数据自动加双引号定界符,记录尾自动加回车换行符。
例如,用Write # 建立由表6-2给出的居民区人员登记表:
表6-2&& 居民区人员登记表(jmdjb.dat)
代码如下:
Dim sfzh(3) As String, xm(3) As
String, xb(3) As String, nl(3) As Integer, csny(3) As Date
sfzh(1) = "101": xm(1) = "小米": xb(1) =
"女": nl(1) = 24: csny(1) = #11/1/1980#
sfzh(2) = "102": xm(2) = "张明哲": xb(2)
= "女": nl(2) = 6: csny(2) = #3/4/1998#
sfzh(3) = "999": xm(3) = "张前": xb(3) =
"男": nl(3) = 1: csny(3) = #10/6/2003#
Open " jmdjb.dat " For Output As
#1&&&&&&&&&&&&&&&
' 建立文件
Write #1, "身份证号", "姓名", "性别", "年龄",
"出生年月"&&&
&' 写入表头
For i = 1 To
3&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
'利用循环语句写入多条记录
& Write #1, sfzh(i),
xm(i), xb(i), nl(i),
csny(i)&&& '
写入第i个记录
6.2.3 顺序文件的读操作
对于用Input方式打开的顺序文件,可用下面的语句或函数从文件中读取数据。
1、 Line Input语句:把文件中的一行读到一个字符串变量中
语法格式为:
Input& #文件号,字符串变量
该语句将文件的一整行逐个字符地读到指定变量中,遇到回车符或换行符结束,但变量中不包括回车符或换行符。读完后,文件指针指向下一行的第一个字符,下一个Line
Input语句将读取当前指针指向的那一行数据。
对于没有划分字段的文本文件,一行指从文件开头或回车换行符到下一个回车换行符之间的部分;对于划分了字段的表,一行即一个记录,包括分隔符和定界符,如空格、逗号、双引号等均作为有效字符读到变量中。
例如,设TEST.TXT文本文件已存在D:\下,则执行下面的代码将整个文件输出到一个图片框中:
Open "D:\TEST.TXT" For Input As #4
Do While Not
EOF(4)&&&&&&&&&
’EOF为文尾测试函数
& Line Input #4,
TextLine&&&&&&
’将读入的一行存到变量TextLine中
& Picture1.Print
TextLine&&&&&&
’在Picture1中输出变量TextLine
请读者思考:如何将文件中的内容按行显示在文本框中?
2.Input函数:从一个打开的顺序文件中返回指定个数的字符
语法格式为:
Input(读取的字符个数,[#]文件号)
该函数读取文件中的任何字符,包括回车换行符。调用该函数后,移动文件指针到下一个读取位置。
例如,用Input函数把上例中的文件一次读一个字符地显示在文本框中。代码如下:
Open "D:\TEST.TXT" For Input As #6
Do While Not EOF(6)
TextVar = TextVar + Input(1,
#6)& ’先把读入的字符存放到变量TextVar中
Text1.Text = TextVar
3.Input #
语句:用于从打开的顺文件中读取数据赋值给指定的变量
语法格式为:
Input& #文件号, 变量表
该语句用于读取文件中的数据,以字段为单位,读取后依次赋值给变量表中的变量。变量表中有多个变量时以逗号分隔。
使用该语句时,变量表中的变量个数应和文件中的每条记录划分的字段数相同,类型应匹配,即一次应读出一整条纪录。读出的数据不包括字符串字段的定界符和字段之间的分隔符。
为了正确地从打开的文件读取数据到变量中,文件中的数据应该是用Write #
语句写入(而不是用Print #语句),这样可保证每个字段被正确分界。
表6-3 各对象对应属性的属性值
CommonDialog1
file(Read-write)
代码如下:
rem 利用打开文件对话框打开并读取文件
Private Sub Cmdread_Click()
Picture1.Cls: TxtEdit.Text = ""
CommonDlg.Filter = "all file(*.*)|*.*|text file(*.txt)|*.txt|batch
file(*.bat)|*.bat"
CommonDlg.FilterIndex = 2
CommonDlg.ShowOpen
&&& FileName =
CommonDlg.FileName
FileName For Input As #f
&&& Do While Not
Line Input #f, textline
Picture1.Print textline
TxtEdit.Text = TxtEdit.Text + textline + Chr(13) + Chr(10)
&&& Close #f
Rem 利用另存为对话框保存文件
Private Sub Cmdwrite_Click()
CommonDlg.Filter = "all file(*.*)|*.*|text file(*.txt)|*.txt|batch
file(*.bat)|*.bat"
CommonDlg.FilterIndex = 2
CommonDlg.ShowSave
&&& FileName =
CommonDlg.FileName
FileName For Output As #f
&&& Print #f,
TxtEdit.Text
&&& Close #f
Rem 在Out.txt文件中追加数据
Private Sub CmdAppend_Click()
putdata "out.txt",
"abcdfghijklmnopqrstuvwxyz"
&Sub putdata(f As
String, st As Variant)
&Dim sfile As
&sfile = ""
&Open App.Path
& sfile For Append As #1
&Print #1, st
6.3 随机文件
随机文件以记录为单位,每个记录包含若干字段,记录和字段都有固定的长度。文件中的第一个记 录或字节位于位置 1,第二个记录或字节位于位置
2,依此类推。如果省略记录号,则将上一个 Get 或 Put 语句之后的(或上一个 Seek
函数指出的)下一个记录或字节写入。
记录都有相同的结构和数据类型,在建立和使用随机文件前,必须先声明记录结构和处理数据所需的变量。声明记录结构和数据类型一般用自定义数据类型。例如,为了将表6.1中的居民区人员登记数据建立为一个随机数据文件,可定义数据类型如下:
Public Type&
Sfzh as string
& xm As String *
& xb As String *
nl As Integer
csny& As Date
这种数据类型是由用户根据记录数据类型自行定义的,定义了jmdjdata数据类型后,就可以声明记录类型的变量。这里jmdjdata的使用方法同常用数据类型(如integer、string等)。例如:
&&& Dim jmdj As
这样就可以用jmdj变量存储记录数据。
1、 打开随机文件:Open语句
语法格式为:
[For& Random]&
&文件号&& [ Len
=记录长度]
指定的文件名不存在时建立该文件,存在时打开文件。
打开方式指定为Random或缺省均为打开随机文件。
3)对随机文件,Len用于指定记录长度,以便根据指定的长度计算指定记录的位置。缺省值为
128个字节。当指定长度小于记录实际长度(即声明的记录结构长度)时将产生错误;大于实际长度时,可以写入,但浪费空间。为了确保指定长度与实际长度相
等,可用Len函数测试记录变量的长度。
3) 关闭随机文件语句:Colse语句
语法和顺序文件相同。
2、 将变量值写入随机文件语句:put语句
语法格式:
#&文件号&, [记录号],
&记录变量&
必要。任何有效的文件号。
可选。Variant (Long)。记录号(Random
方式的文件)或字节数(Binary 方式的文件),指明在此处开始写入。
必要。包含要写入磁盘的数据的变量名。
1)指定“记录号”参数时,写入的记录用指定记录号标&
识。若已有指定记录号的记录,则此记录被覆盖;若不指定记录号,则默认为上一次使用Put或Get语句操作的记录的下一个记录,
若还没执行过Put或Get语句,则默认为第一条记录。
2) “记录变量”应与记录结构的类型一致。
知已有多少个记录,可用Lof函数(它返回打开文件的长度)除以记录长度计算,
计算公式为:Lof(文件号)/
记录长度。如果要向文件末尾添加记录,则添加的记录的记录号为:Lof(文件号)/ 记录长度+1
4)& 通常用 Get 将 Put
写入的文件数据读出来。
例:使用 Put 语句将数据写入文件中(示例中写入五个用户自定义数据类型
Record 的记录)。
Record&& ' 定义用户自定义数据类型。
ID As Integer
Name As String * 20
Dim MyRecord As Record,
RecordNumber&& ' 声明变量。
' 以随机访问方式打开文件。
Open "TESTFILE" For Random As #1 Len =
Len(MyRecord)
For RecordNumber = 1 To
5&& ' 循环五次。
MyRecord.ID = RecordNumber&& ' 定义
MyRecord.Name = "My Name" &
RecordNumber&& ' 建立字符串。
Put #1, RecordNumber, MyRecord&&
' 将记录写入文件中。
Next RecordNumber
#1&& ' 关闭文件。
注意:在上面代码中,不能将表头作为记录写入文件,因为它与后面的记录数据不是一致的类型。
从随机文件中读取数据:Get语句
语法格式为:
Get& #&文件号&, [记录号],
&记录变量&
必要。任何有效的文件号。
可选。Variant (Long)。记录号(Random
方式的文件)或字节数(Binary 方式的文件),以表示在此处开始读出数据。
必要。一个有效的变量名,将读出的数据放入其中。
此语句功能是将一个已打开的磁盘文件读入一个变量之中。
◆&&&&
通常用 Put 将 Get 读出的数据写入一个文件。
◆&&&&
缺省“记录号”时,读取当前记录。
◆&&&&
读取连续记录时,可将记录变量声明为记录数组,从而使用循环,以提高代码效率。
例:使用 Get 语句来将数据从文件读到变量中。示例中假设 TESTFILE
文件中含有五个用户自定义类型的记录。
Record&& ' 定义用户自定义的数据类型。
ID As Integer
Name As String * 20
Dim MyRecord As Record,
Position&& ' 声明变量。
' 为随机访问打开样本文件。
Open "TESTFILE" For Random As #1 Len =
Len(MyRecord)
' 使用 Get 语句来读样本文件。
For Position = 1 To
5&& ' 定义记录号。
&&& Get #1,
Position, MyRecord&& '
读第Position个记录。
MyRecord.ID, MyRecord.Name
Next Position
Close #1 ' 关闭文件。
源地址:http://tysword./blog/static//
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 vb.net 读写文件操作 的文章

 

随机推荐