学院首页 软件应用 编程开发 创意设计 认证培训 软件论坛
ASP ASP.NET PHP JSP SQL MYSQL Java VB

您的位置:学院 >> 编程开发 >> VB >> 利用Visual Basic命令操作文件


利用Visual Basic命令操作文件


天极IT资讯短信服务 电脑小技巧
资费:包月5元
手机:
介绍:细处着手,巧处用功。高手和菜鸟之间的差别就是:高手什么都知道,菜鸟知道一些。电脑小技巧收集最新奇招高招,让你轻松踏上高手之路。

  (一)打开和关闭文件

  1、顺序文件

  打开顺序文件,我们可以使用Open语句。它的格式如下:

Open pathname For [Input |Output |Append] As [#]filenumber [Len = buffersize]

  说明:

  (1)参数pathname 表示要打开的文件名,文件名可以包含有驱动器和目录

  (2)Input Output 和Append用于设置顺序文件的打开方式。其中,Input表示从打开的文件中读取数据。以这种方式打开文件时,文件必须存在,否则会产生错误。Output表示向打开的文件中写入数据。以这种方式打开文件时,文件中原有的数据将被覆盖,新的数据将从文件开始写入。如果文件不存在,则创建一个新文件。Append表示向打开的文件中添加数据。以这种方式打开时,文件中原有的数据将被保留,新的数据将从文件为开始添加。如果文件不存在,则创建一个新文件。

  (3)As[#]filenumber 子句用于为打开的文件指定文件号.对文件进行读写操作时,要用文件号表示该文件.文件号是介于1'511之间的整数,既可以是数字,又可以是变量.也可以省略不用.

  (4)当在文件与程序之间拷贝数据时,Len=buffersize子句指定缓冲区的字符数.

  例如:

Open App.Path + "\test.dat" For Output As 1

Open App.Path + "\test.dat" For Output As 1

  这两句代码在当前应用程序所在目录下创建了一个名为test.dat的文本文件,分配文件号为1.

Open App.Path + "\test.dat" For Input As [#]filenumber

  这条语句是从文本文件中读取数据.

Open App.Path + "\test.dat" For Append As [#]filenumber

  这条语句则是像文本文件中添加数据

  2、随机文件

  操作随机文件之前,首先必须定义用于保存数据项的记录类型.该记录是用户自定义数据类型,他们是随机文件中存储数据的基本结构.例如:

Type Student
 No As Integer
 Name As String * 20
 age As Integer
End Type

Dim Stud As Student ‘定义一个可以存放学生材料的变量

  随机文件中,所有的数据都将保存到若干个结构为Student类型的记录中, 而从随机文件中读出的数据则可以存放到变量Stud中.

  之后我们就可以打开并读写文件了.下面是打开随机文件的语法格式:

Open filename For Random as [#]filenumber Len = Reclength

  说明:

  (1)参数filename 和filenumber 分别表示文件名或文件号.

  (2)关键字Random 表示打开的是随机文件

  (3)Len子句用于设置记录长度,长度由参数Reclength指定.Reclength的值必须大于0,而且必须与定义的记录结构的长度一致.计算记录长度的方法是将记录结构中每个元素的长度相加.例如前面声明的Student的长度应该是2+20+2=24字节.

  打开一个记录类型为Student 的随机文件的方法是:

Open "c:\Student.txt " For Random As #1 Len = 25

  3、二进制文件

  打开二进制文件的语法格式如下:

Open pathname For Binary As [#]filenumber

  说明:

  (1) 参数filename 和filenumber 分别表示文件名或文件号.

  (2)关键字Binary 表示打开的是二进制文件

  (3)对于二进制文件,不能指定字节长度.每个打开的二进制文件都有一个自己的指针,文件指针是一个数字值,指向下一次读写操作的文件中的位置.二进制文件中的每个”位置”对应一个数据字节,因此,有n个字节的文件,就有1到n个位置.

  我们可以用Seek()函数返回当前的文件指针位置(即下一个要读写的字节 );用Loc()函数返回上一次读写的字节位置,除非用Seek语句移动了指针,Loc()返回值总比Seek()的小1.我们来看下面的例子:

Open “student.txt” for Binary as #1

  该语句用二进制的方式打开了student.txt文件.

  (二)读文件

  1、顺序文件

  顺序文件的读取有三种方式:

  (1)Line Input # 语句

  该语句从打开的顺序文件中读取一行数据。这里的一行指的是从当前指针位置开始到回车符或回车换行符之间的所有数据。Line Input # 语句的语法格式如下:

Line Input # 文件号,变量号

  说明:“文件号”是打开文件时所用的文件号;“变量号”使用来存放读出数据的一个或多个变量,如果有多个变量,中间用空格分割开。Input# 语句为参数列表中的每一个变量读取文件的一个域,并将读出的域存入变量中。该语句只能顺序的从第一个域开始,直到读取想要的域。

  请看下面代码:

Dim strLine As String

Open "c:\vb\test.txt" For Input As #1

Do Until EOF(1)
 Line Input #1, strLine
 text1.Text = text1.Text + strLine + Chr(13) + Chr(10)
Loop

Close #1

  此段代码逐行读取一个文件到文本框中。

  (2)Input函数

  此函数可以从顺序文件中一次读取指定长度的字符串。具体地说,就是从文件的当前位置开始,读取指定个数的字符,然后将他们返回。Input函数可以读取包括换行符,回车符,空格符等在内的各种字符。下面是它的语法格式:

  变量 = Input(串长度,文件号)

  例如,要从一个打开文件中读取12个字符并复制到变量file中,我们可以这样写:

file = Input(12,filenum)

  如果要将整个文件复制到变量,请使用InputB函数将字节从文件复制到变量。由于InputB函数返回一个ASCII字符串,因此,必须用StrCopy函数将ASCII字符串转换为Unicode字符串。代码如下:

file = StrCopy (Input (LOF(filenanum),filenum),vbUnicode)

  (3)Input # 语句

  Input #语句可以从文件中同时向多个变量内读入数据,而且读入的数据可以是不同类型的。
 
  下面使它的语法格式:

Input # 文件号,变量列表

  例如,我们要在文件student.txt中写入数据,下面是代码:

Open "student.txt" For Output As #filenum

Write #filenum, "张三", "初一年级", 14
Write #filenum, "李四", "职业高中", 18

Dim name As String, nianji As String, age As Integer
Dim name1 As String, nianji1 As String, age1 As Integer
Open "student.txt" For Input As #filenum
Input #filenum, name, nianji, age
Input #filenum, name1, nianji1, age1
Close #filenum

  执行结果:

name=”张三” ,nianji = “初一年级” ,age =14

name=”李四” ,nianji = “职业高中” ,age =18

  2、随机文件

  读取随机文件是可以使用Get # 语句,数据从文件的一个指定记录中读出后,存入一个用户自定义的变量中.

  语法格式: Get # FileNum ,[RecNum],UserType

  说明:

  (1)FileNum 是要打开的文件号;RecNum是要读取的记录号,若省略,则读取下一个记录

  (2)UserType 是一个用来存放读出数据的用户自定义的数据类型变量.

  下面是一个例子:

Get # 1,5,Student

  该语句读取文件号为1的文件中的第5条记录.

  3、二进制文件

  读写二进制文件的方法和读写随机文件的方法基本相同,下面是相关的语句格式及其说明:

  格式: Get [#]fileNumber ,[Pos], Var

  功能: 用二进制方式,从文件的中指定的位置开始读取,所给变量长度的数据

  说明:

  (1)FileNumber是以二进制方式打开的文件号.

  (2)Pos用来指定读写操作发生时的字节位置,若省略,则使用当前文件指针位置.

  (3)Var是用来存放读出的数据的变量.该语句会自动根据var变量包含的字节长度读取适当的文件,如果Var是一个可变长度的字符串变量,则传送的字节数等于Var中目前的字节数.对于文件长度的判断我们可以使用Lof()函数,Eof()函数检查文件的结尾位置.

  下面的代码复制studert.txt文件到student1.txt文件中

Dim ar As String * 1, i As Integer
Open "c:\student.txt" For Binary As #1
Open "c:\student2.txt" For Binary As #2
For i = 1 To LOF(1)
 Get #1, , ar
 Put #2, , ar
Next i

Close #1, #2

  (三)写文件

  1、 顺序文件

  写顺序文件我们可以用Write # 和Print #语句向一个已经打开的文件中写入数据.

  下面是他们的格式和说明:

  Print # 的语法格式:

  Print # 文件号,变量列表

  例如,将文本框中的文本写到文件中,代码如下:

Open "file.txt" For Output As #filenum

Input #filenum, text1.text

  Write # 语句的语法格式:

Write # 文件号,变量列表

  说明:用Write # 语句写入的信息便于以后用Input #语句来读取数据,因为Write #语句自动将写入到文件中的信息用逗号分开,并为字符串数据加上双引号.例如:

Open "student.txt" For Output As #filenum

Write #filenum, "张三", "初一年级", 14
Write #filenum, "李四", "职业高中", 18

  2、 随机文件

  向随机文件中写入数据,使用Put #语句.语法格式如下:

Put [#] FileNum ,[RecNum],UserType

  说明:

  (1) FileNum 是要打开的文件号;RecNum是要写入的记录号,若省略,则再上一次用Get 和Put语句所读写过的记录的后一条记录中写入,如果没有执行过Get 和Put语句,就从第一条记录开始

  (2)UserType 是包含要写入数据的用户自定义的数据类型变量.例如:我们向前面的student.txt文件中的第5个记录写入数据,可用这些语句:

stud.No = 0301
stud.Name = “王武”
stud.Age =20
Put #1 ,5,stud

  如果要插入的数据不只一两条的话,首先要确定文件和每条记录的长度,这样就可以计算出文件中究竟有多少条记录.我们可以用Lof()函数返回文件的长度,Len()函数返回每个记录的长度,计算文件中的记录个数可以用文件的长度除以给个记录的长度.示例如下:

Nextrec= (Lof(1)\Len(UserType))+1

Put #1,Nextrec,UserType

  3、二进制文件

  下面是以二进制方式写入文件的语句格式及其说明:

  格式:

Put [#]fileNumber ,[Pos], Var

  功能: 用二进制方式,从文件的中指定的位置开始写入,所给变量长度的数据

  说明:

  (1)FileNumber是以二进制方式打开的文件号.

  (2)Pos用来指定写操作发生时的字节位置,若省略,则使用当前文件指针位置.

  (3)Var是用来存放写入的数据的变量.该语句会自动根据var变量包含的字节长度写入文件,如果Var是一个可变长度的字符串变量,则传送的字节数等于Var中目前的字节数.

  使用方法可参考二进制文件的读操作.
技术文章快速查找

栏目导航
软件应用
·操作系统 ·杀毒防黑 ·应用软件
·聊天软件 ·网络软件  
Web开发
·ASP ·JavaScript ·CGI
·JSP ·VbScript ·Web服务器
·PHP ·XML  
开发语言
·VB ·VC ·ASP.NET
·Java ·C/C++ ·Delphi
数据库开发
·MySQL ·SQL/Access ·PowerBuilder
·Oracle ·DB2  
网站设计
·Flash ·Dreamweaver ·HTML/CSS
·Fireworks ·FrontPage  
平面设计
·Photoshop ·CorelDraw ·AutoCAD
·FreeHand ·Illustrator ·3DsMAX
媒体动画
·Director ·Authorware ·Maya
·视频处理    


相关软件 产品库推荐
·笔记本 ·台式机 ·服务器
·数码相机 ·手机 ·GPS
·DV摄像机 ·MP3 ·MP4
·CPU ·硬盘 ·内存
·主板 ·显卡 ·显示器
·打印机 ·投影机 ·路由器

还没人留言,抢个先,哈哈!
对"利用Visual Basic命令操作文件"的评论 - 快速回贴
内容:
  [完成后可按Ctrl+Enter发布]

百度中 利用Visual Basic命令操作文件 相关内容
Google搜索中 利用Visual Basic命令操作文件 相关内容
雅虎中 利用Visual Basic命令操作文件 相关内容
Sogou搜索中 利用Visual Basic命令操作文件 相关内容

相关软件 最新回复帖子:

·AutoCAD打造精致三维鸟笼实例详解
·Photoshop自定义水晶字特效样式
·AutoCAD三维基础实例教程
·PS为黑背景长发美女照片抠图换背
·用Photoshop自制个性摩托车贴花小经验
·轻松几步将美女照片处理为手工素描
·巧用Photoshop画笔轻松绘制创意特效
·用Photoshop通道将模糊肖像照片清晰化
·照片处理:Photoshop修复残破照片
·PS CS2新增形状模糊滤镜绘制花布图案


  相关软件 利用Visual Basic命令操作文件相关文章
利用Visual Basic常用控件操作文件 VB中利用Windows API实现文件操作
VB中操作目录的Winodws API小结 用Viusal Basic命令操作目录解析
利用VB控件操作目录和文件夹 Visual Basic两行代码写播放器
VB中创建可以输出函数的DLL 在VB的ListView控件中动态加载记录
用VB远程控制可编程控制器 基于VB编程的链式存储技术浅析
VB开发客户服务器软件的设计与实现 在Visual Basic编程中运用数据结构
用VB判断网页文件是否在IE缓存中 向Visual Basic程序员介绍泛型
VB程序错误处理方法小结 VB中SQL合计函数的使用
用VB6实现程序多语言界面 Visual Basic自适应窗体设计经验
VB中数据集合对象的应用 VB编程中钩子的实现及应用