精华内容
下载资源
问答
  • VB文件的读写操作

    2010-12-17 20:39:35
     访问模式:计算机访问文件的方式,VB中有顺序、随机、二进制三种访问模式。 2. 顺序访问模式  顺序访问模式的规则最简单,指读出或写入时,从第一条记录“顺序”地读到最后一条记录,不可以...

    1.  文件的有关概念

     记录:计算机处理数据的基本单位,由若干个相互关联的数据项组成。相当于表格中的一行。

     文件:记录的集合,相当于一张表。

     文件类型:顺序文件、随机文件、二进制文件。

     访问模式:计算机访问文件的方式,VB中有顺序、随机、二进制三种访问模式。

    2. 顺序访问模式

        顺序访问模式的规则最简单,指读出或写入时,从第一条记录“顺序”地读到最后一条记录,不可以跳跃式访问。该模式专门用于处理文本文件,每一行文本相当于一条记录,每条记录可长可短,记录与记录之间用“换行符”来分隔。

      顺序文件的写入步骤:打开、写入、关闭;  读出步骤:打开、读出、关闭。

    (1)打开文件

      打开文件的命令是Open,格式为:

              Open “文件名” For 模式  As [#] 文件号 [Len=记录长度]

      说明:

       1)文件名可以是字符串常量也可以是字符串变量

       2)模式可以是下面之一:

           OutPut:打开一个文件,将对该文件进行写操作

           Input:打开一个文件,将对该文件进行读操作

           Append:打开一个文件,将在该文件末尾追加记录

       3) 文件号是一个介于1-511之间的整数,打开一个文件时需要指定一个文件号,这个文件号就代表该文件,直到文件关闭后这个号才可以被其他文件所使用。可以利用FreeFile()函数获得下一个可以利用的文件号。

           例: Open  "D:\sj\aaa"  For  Output  As  #1   

        意思是:打开D:\SJ下aaa文件供写入数据,文件号为#1

    (2)写操作

       将数据写入磁盘文件所用的命令是:Write# 或Print#。语法格式:

      1) Print #文件号,[输出列表]
        
         例: Open “D:\SJ\TEST.DAT” For  Output  As  #1

            Print  #1,Text1.Text        '把文本框的内容一次性写入文件

           Close  #1

      2)Write #文件号,[输出列表]

            其中的输出列表一般指用逗号,分隔的数值或字符串表达式。Write #与Print #的功能基本相同,区别是Write #是以紧凑格式存放,在数据间插入逗号,并给字符串加上双引号。

    (3)  关闭文件

       结束各种读写操作后,必须将文件关闭,否则会造成数据丢失。关闭文件的命令是Close。

       Close  [#]文件号[,[#]文件号]……

       例: Close  #1,#2,#3

    (4) 读操作

      1) Input #文件号,变量列表

       作用:将从文件中读出的数据分别赋给指定的变量。

        注意:与Write #配套才可以准确地读出。

      2)Line  Input #文件号,字符串变量

        用于从文件中读出一行数据,并将读出的数据赋给指定的字符串变量,读出的数据中不包含回车符和换行符,可与Print #配套用。

      3)Input$(读取的字符数,#文件号)

        该函数可以读取指定数目的字符。

        与读文件有关的两个函数:

        LOF():返回某文件的字节数

        EOF():检查指针是否到达文件尾。

        例:将一个文本文件读入文本框的三种方法。

    3.随机访问模式

         该模式要求文件中的每条记录的长度都是相同的,记录与记录之间不需要特殊的分隔符号。只要给出记录号,可以直接访问某一特定记录,其优点是存取速度快,更新容易。

     (1)  打开与关闭

        打开:Open “文件名” For  Random  As [#] 文件号 [Len=记录长度]

        关闭:Close  #文件号

           注意:文件以随机方式打开后,可以同时进行写入和读出操作,但需要指明记录的长度,系统默认长度为128个字节。

     (2)读与写

        读操作:Get  [#]文件号,[记录号],变量名

        说明:Get命令是从磁盘文件中将一条由记录号指定的记录内容读入记录变量中;记录号是大于1的整数,表示对第几条记录进行操作,如果忽略不写,则表示当前记录的下一条记录。

           写操作:Put  [#]文件号,[记录号],变量名

         说明:Put命令是将一个记录变量的内容,写入所打开的磁盘文件指定的记录位置;记录号是大于1的整数,表示写入的是第几条记录,如果忽略不写,则表示在当前记录后插入一条记录。

    4.  二进制访问模式

      打开:Open “文件名” For  Binary  As [#] 文件号 [Len=记录长度]

         关闭:Close  #文件号

         该模式是最原始的文件类型,直接把二进制码存放在文件中,没有什么格式,以字节数来定位数据,允许程序按所需的任何方式组织和访问数据,也允许对文件中各字节数据进行存取和访问。

        该模式与随机模式类似,其读写语句也是Get 和Put,区别是二进制模式的访问单位是字节,随机模式的访问单位是记录。在此模式中,可以把文件指针移到文件的任何地方,刚开始打开时,文件指针指向第一个字节,以后随文件处理命令的执行而一旦。文件一旦打开,就可以同时进行读写。

    摘自:网络整理


    相关参考


    VB查找替代字符串的函数

    VB换行气泡提示类

    VB/VBA通用路径选择对话框

    ASCII码表0-255完整版 附详细注释

    VBKeyAscii

    VB取得TextBoxRichTextBox光标所在的行和列(支持汉字)

    VB取得TextBoxRichTextBox光标所在的行和列(支持汉字)

    VB如何实现Undo(撤消)功能

    VB计算文本文件的行数

    VB获取快捷方式原文件路径

    微软 Small Basic 简体中文版 已经发布了

    VB操作Excel 非常详细 [网摘]

    VB如何判断文件正被占用/已被打开

    VB添加listbox 的水平卷动轴

    VB打开资源管理器并指定文件

    VB根据窗体自动调整窗体内控件大小 注:实用,可以直接引用

    VB中的指针技术

    Visual Basic编程常见问题及解答(1

    Visual Basic编程常见问题及解答(2

    Visual Basic编程常见问题及解答(3

    VisualBasic变量、常数和数据类型及过程概述

    VB6的后期绑定和前期绑定

    VB用户控件制作讲解与实例

    VB制作OCX控件的步骤

    VBFSO的调用的两种方法

    VB操作EXCEL

    VB判断文件及目录的存在性

    VB网站(最新、经典源代码、技术文章、基础知识)

    VB得到指定文件夹下的文件列表

    VB产生随机任意大小文件挤满硬盘

    VB文件的读写操作

    VB创建超链接 打开指定网站的几种方法

    VB 源码 删除重复行程序 函数

    VB 计算自己程序段所用时间

    VB 获取路径名各部分 (获取文件路径,获取文件名,获取文件扩展名)自编

    几行VB代码拿下注册表

    VB 在浏览器中打开指定网址

    VB窗口置顶

    vb ListBox 之中点击右键弹出菜单

    展开全文
  • VB文件读写

    2015-10-08 15:33:11
    vb使用open方法读写文件 (一)打开和关闭文件  1、顺序文件  打开顺序文件,我们可以使用Open语句。它格式如下: Open pathname For [Input |Output |Append] As [#]filenumber [Len =...
    vb使用open方法读写文件
    (一)打开和关闭文件

      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中目前的字节数
    展开全文
  • VB6.0 顺序文件写操作的操作演示,三种方法写数据,包括了完整的源码项目下载,是学习VB文件读写操作的好范例。  这三种方法是:  把文件的内容一次性的写入  把字符一个一个写入  依次写入顺序文件
  • vb使用open方法读写文件

    万次阅读 2008-05-26 12:41:00
    vb使用open方法读写文件 (一)打开和关闭文件 1、顺序文件 打开顺序文件,我们可以使用Open语句。它格式如下: Open pathname
    vb使用open方法读写文件
    (一)打开和关闭文件

      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中目前的字节数
    展开全文
  • vb常用文件读写操作

    2009-12-13 19:44:00
    1、顺序文件的读写操作(Input, LineInput,Print,Write)Open Filepath For (For Mode) As #FilenumberFor Mode有三种:Input是读文件,要求指定的文件必须已打开。Output是写文件,如果找不到文件,则系统建一个...

    1、顺序文件的读写操作(Input, LineInput,Print,Write)
    Open Filepath For (For Mode) As #Filenumber
    For Mode有三种:Input是读文件,要求指定的文件必须已打开。Output是写文件,如果找
    不到文件,则系统建一个文件并写入数据,覆盖原内容。Append是写文件,不过会在原文
    件末尾写入数据。如果找不到文件,则系统建一个文件并写入数据。
    (1)读文件
    Line Input语句不读取文件中的回车符。
    Dim textline As String
    Dim nextline As String
    Open App.Path & "/" & " REDIST.txt" For Input As
       Do Until EOF(1)
          Line Input , nextline
          textline = nextline + vbCrLf+ textline
       Loop
    Close
    '在Text1的属性中行设置Text1.MultiLine = teue,Text1.ScrollBars = 2
    Text1.Text = textline
    Input( )函数能读取文件中的回车符,且支持按用户指定的长度读文件。
    Dim alltext As String
    Open App.Path & "/" & " REDIST.txt" For Input As
    If LOF(1) >= 700 Then
          MsgBox "文件太长。"
       Else
          alltext = Input(100, 700)
          Text1.Text = alltext
    End If
    Close
    (2)写文件
    Open App.Path & "/" & " REDIST.txt" For Output As
      Write , "We are Chinese"       '返回值是"We are Chinese" ,而不是We are Chi
    nese
      Print , "We", "are", "Chinese" '返回值是We        are       Chinese
      Print , "We"; "are"; "Chinese" '返回值是WeareChinese
      Print , "We"; Spc(3); "are"; Tab(3); "Chinese" '返回值是We   are
       Chinese
    Close
    (3)其它文件操作
    Kill "c:/Readme.txt"    '注意不经过回收站
    Kill "c:/shine6832/*.*" '删除整个shine6832所有文件
    FileCopy "c:/Readme.txt", "d:/Readme.txt" '从c盘复制到d盘
    Name "c:/Readme.txt" As "c:/Read.txt"   '重命名文件
    MkDir "c:/VB/shine6832" '创建一个新的目录或文件夹
    RmDir "c:/shine6832" '只能删除空文件夹,如要删除整个目录,可用两个语句:_
                      Kill "c:/shine6832/*.*" :  RmDir "c:/shine6832"
    st = FileDateTime("c:/shine6832/sd.txt") '返回文件的日期和时间戳
    SetAttr(PathName As String, Attributes As VbFileAttribute) '设置一个文件的属性
    信息
    其中VbFileAttribute:Const vbReadOnly = 1,Const vbSystem = 4,Const vbHidden
    = 2,'Const vbArchive = 32
    2、随机文件的读写操作(Get,Put,Type……End Type)
    随机文件的概念随机文件中所有的记录都是等长的,并且每一个记录都有一个记录号。根
    据记录号,可以直接对任何记录进行读写操作。与顺序文件相比,随机文件在读写数据的
    效率上占据了优势,然而在存储空间上却有所损失。由于随机文件的记录长度相等,指定
    记录长度时,总是以最长信息的记录为依据。对于信息短小的记录而言,也获得了最大的
    空间,这样就造成了浪费。
    (1)文件语句的一般格式Open FileName FOR Random [Acess <Mode>] [Lock] As Filen
    umber [Len=reclenth]  其中:
    [Acess <Mode>]:可选参数,Acess是关键词。Mode有Read、Write、Read Write。
    [Lock]:设定要打开文件的权限。有以下参数Share、Lock Read、Lock Write、Lock Wri
    te、Lock Read Write。
    例如:Open "D:/Student.dat" FOR Random Read Write As
    (2)关闭文件语句的一般格式与顺序文件相同,在此省略。
    (3)随机文件写语句的一般格式 Put〈文件号〉,〈记录号〉,〈变量〉例如:将“Lov
    e”、2356、True三个数据,分别写入C盘“Test”文件的1、3、4号记录中。
    Open "c:/Test.dat" For Random As  Len = 20
     Dim a As String:  a = "Love"
     Dim b As Integer: b = 2356
     Dim c As Boolean: c = True
       Put , 1, a
       Put , 3, b
       Put , 4, c
    Close
    (4)随机文件读语句的一般格式Get〈文件号〉,〈记录号〉,〈变量〉例如:将 “C:/
    Book.txt”文件中的9号记录读出,并显示在标签框中。
    '在模块里定义一个变量
    Type Book
        Dim BookName As String * 10
        Dim BookPrice As Single
        Dim BookAuthor As String * 3
    End Type
    '窗体里
    Sub cmdRead_Click()
    Dim bookInfo As Book
     Open "c:/Book.txt" For Random As  Len = Len(booInfo)
        Get , 9, bookInfo
     Close
         lblBookName.Caption = bookInfo.BookName
         lblBookPrice.Caption = booInfo.BookPrice
         lblBookAuthor.Caption = booInfo.BookAuthor
    End Sub
    总的说来,无论是读,写,改都必须要指定记录号。注意:不能对指定的记录号删除。
    *******************

    展开全文
  • 记得以前使用vb6.0的时候,对文本文件的操作挺麻烦的,特别是在写文件的时候,需要区分什么顺序文件、随机文件,很教材都专门针对文本文件的读写开辟了一个章节来讲解,够麻烦的了。现在使用.net读写文本文件,因为...
  • 下载文件中包含可直接使用可执行文件VB6上HID读写测试文件,在Jan Axelson开源版本上增加了设置VIP和PID功能,此外把接收数据显示格式进行了调整,按照接收顺序进行显示。
  •  1、顺序文件  打开顺序文件,我们可以使用Open语句。它格式如下: Open pathname For [Input |Output |Append] As [#]filenumber [Len = buffersize]   说明:  (1...
  • VB文件部分知识重点l文件系统控件(同步效果的实现)l文件结构(顺序、随机、二进制)l顺序文件、随机文件的读写操作文件系统控件1.驱动器列表框用于显示和选择驱动器。主要属性:[.]Drive=;主要事件:Change2.目录列表...
  • open方法读写文件

    2015-09-06 10:55:00
    (一)打开和关闭文件 1、顺序文件 打开顺序文件,我们可以使用Open语句。它格式如下: Open pathname For [Input |Output |Append] As [#]filenumber [Len = buffersize]  ...
  • LOC函数:LOC(文件号)--返回文件号所代表文件的读写位置,LOC函数的返回值为long数据类型。对于随机文件,返回的为上一次对文件进行读出或写入的记录号;对于二进制文件,返回的为上一次读出或写入的字节位置;...
  • 1、打开文件的基本格式为: Output、Append、Input方式打开的文件进行的读写操作都是以顺序方式进行的,①Output、Append打开的文件主要用来输出数据,与Print#、Write#等方法配合使用②以Input方式打开的文件主要...
  • [VB学习中]之六:文件操作

    千次阅读 2004-12-27 22:06:00
    文件的打开与读写Open “文件名” For 模式 As [#] 文件号 [Len=记录长度]模式:(1)顺序访问模式OutPut:打开一个文件,将对该文件进行写操作。Input:打开一个文件,将对该文件进行读操作。Append:打开一个文件...
  • (3) 文件的读写语句 (4) 顺序文件与随机文件 (5) 二进制文件 (6) 常用的文件操作语句 第六章 图形操作4学时(2课时讲授+2课时上机) (一) 基本要求 掌握图形操作的基本概念,包括坐标系及其变换;掌握线形、线宽、...
  • VB6二进制双通道技术实战经典

    万次阅读 2007-08-11 18:13:00
    文件还原是文件分割的逆过程,即是将分割后的文件严密的按照分割顺序用二进制读写的方法写入一个同一个文件的过程,只要程序算法和逻辑正确严密,分割前和分割后的文件是没有一个字节的差别的。
  • FMLDATA源码

    2014-06-02 15:57:42
    (四)读写FMLDATA文件 了解了文件结构后,可以用各种语言如C/C++、C#、VB、VBA、JAVA、SAS、…………………………等读写文件。 1、用VBA将EXCEL工作表数据写入FMLDATA文件: Sub exceldata2fmldata() '将EXCEL工作...
  • SetFilePointer 在一个文件中设置当前的读写位置 SetFileTime 设置文件的创建、访问及上次修改时间 SetHandleCount 这个函数不必在win32下使用;即使使用,也不会有任何效果 SetVolumeLabel 设置一个磁盘的卷标...
  • 1.服务器空间要求:ASP NET版本=2.0/3.5(一般空间为1.0),默认首页顺序=index.htm,index.aspx,要开启空间读写权限。 2.通过FTP上传所有文件到根目录下 3.系统需要在后台生成静态页面后,方能进入前台 4.前台地址...
  • 实例158 获取在已打开文件的读写位置 实例159 判断变量是否被初始化 实例160 获取文件创建或修改日期 实例161 自定义错误号 实例162 获取当前打开窗口数量 实例163 随机获取姓名 实例164 防止连续出现多个...
  • 实例158 获取在已打开文件的读写位置 实例159 判断变量是否被初始化 实例160 获取文件创建或修改日期 实例161 自定义错误号 实例162 获取当前打开窗口数量 实例163 随机获取姓名 实例164 防止连续出现多个...
  • 随机文件与顺序文件读写过程区别………………………..……………… 使用Output选项打开一个已存在文件会发生情况………………… 使用Append选项写文件会发生情况…………………………………..… 实验项目...
  • 注意:静态编译后常量数据位于PE文件的.rdata段中,只可读不可写,编程时请避免修改它们。譬如以下的代码,静态编译后就可能会出现问题: a = " " GetWindowTextA(hWnd, a, 20) 正确的代码为: a = 取空白文本 ...
  • 识别常见病毒,病毒一般是以隐藏形式藏匿在计算机的文件中,要把文件的隐藏属性打开。每一盘都有工具这个选项,如下图所示: 49 五.常用DOS命令 60 第一章COMS的设置 开机画面现在有两种,一种为AMI公司开发的,...
  • asp.net知识库

    2015-06-18 08:45:45
    实现C#和VB.net之间相互转换 深入剖析ASP.NET组件设计]一书第三章关于ASP.NET运行原理讲述补白 asp.net 运行机制初探(httpModule加载) 利用反射来查看对象中私有变量 关于反射中创建类型实例两种方法 ASP...
  • 第1 章 VB 2 0 0 8核心元素.......................... 1 1 . I 原来关键字和语法................... 2 1 . 2 值类型和引用类型........................7 1 . 3 命令:条件语句.........................10 ...

空空如也

空空如也

1 2
收藏数 28
精华内容 11
关键字:

vb顺序文件的读写