精华内容
下载资源
问答
  • 匿名用户1级2008-06-07 回答7.2 文件...访问模式:计算机访问文件方式VB中有顺序、随机、二进制三种访问模式。2. 顺序访问模式顺序访问模式的规则最简单,指读出或写入时,从第一条记录“顺序”地读到最后一条记...

    匿名用户

    1级

    2008-06-07 回答

    7.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,区别是二进制模式的访问单位是字节,随机模式的访问单位是记录。在此模式中,可以把文件指针移到文件的任何地方,刚开始打开时,文件指针指向第一个字节,以后随文件处理命令的执行而一旦。文件一旦打开,就可以同时进行读写。

    7.3 常用的文件操作语句和函数

    1. FileCopy语句

    格式:FileCopy 源文件名 目标文件名

    功能:复制一个文件

    说明:不能复制一个已打开的文件

    2. Kill语句

    格式:Kill 文件名

    功能:删除文件

    说明:文件名中可以使用通配符 *,?

    3. Name语句

    格式:Name 旧文件名 新文件名

    功能:重新命名一个文件或目录

    说明:不能使用通配符;具有移动文件功能;不能对已打开的文件进行重命名操作

    4. ChDrive语句

    格式:ChDrive 驱动器

    功能: 改变当前驱动器

    说明:如果驱动器为空,则不变;如果驱动器中有多个字符,则只会使用首字母

    5.MkDir语句

    格式:MkDir 文件夹名

    功能:创建一个新的目录

    6.ChDir语句

    格式:ChDir 文件夹名

    功能:改变当前目录

    说明:改变默认目录,但不改变默认驱动器。

    7. RmDir语句

    格式:RmDir 文件夹名

    功能:删除一个存在的目录

    说明:不能删除一个含有文件的目录

    8. CurDir()函数

    格式: CurDir[(驱动器)]

    功能:可以确定任何一个驱动器的当前目录。

    说明:括号中的驱动器表示需要确定当前目录的驱动器,如果为空,返回当前驱动器的当前目录路径。

    展开全文
  • VB - 数据文件(一)顺序文件

    万次阅读 2011-11-03 22:36:24
    1. 打开文件(Open) Open 文件名 [For模式][Access 存取类型][锁定]As [#]...(2) 模式用于指定文件访问方式,包括:  Append——从文件末尾添加 Binary——二进制文件  Input——顺序输入(输入给自己,从t

    1. 打开文件(Open)

    Open 文件名 [For模式][Access 存取类型][锁定]As [#]文件号[Len=记录长度]

           说明:

    (1)文件名;

    (2) 模式用于指定文件访问的方式,包括:
               Append——从文件末尾添加             Binary——二进制文件
               Input——顺序输入(输入给自己,从txt中取出)                            Output——顺序输出(输出到txt中)
               Random——随机存取方式

    (3)文件号(或称文件缓冲区)

    (4)存取类型:访问文件的类型,为Read(只读)、Write(只写)、Read Write(读写)

    (5)锁定:限制其他用户或其他进程对文件进行读写操作

                           Shared(共享)、LockRead(禁止读)、Lock Write(禁止写)、

                              Lock Read Write(禁止读写)

    (6)Len:用来指定每个记录的长度(字节数)

          示例:    Open"d:\cj1.dat" For  Output As  #1

    2. 关闭文件(Close)

             打开的文件使用完后必须关闭。

             关闭文件的语句格式:
               Close[#] 文件号1[,[#] 文件号2…] ]

             示例:

               Close#1

     1. Write语句 
       格式:Write#文件号 [,表达式表]
        功能:将表达式的值写到与文件号相关的顺序文件中
        每个Write语句向顺序文件写入一个记录(不定长),它会自动地用逗号分开每个表达式的值。给字符串加上双引号

             在最后一个字符写入后,插入一个回车换行符(Chr(13) + Chr(10)),以此作为记录结束的标记。

             示例:Write#1, "Good Afternoon", 1998


    Private Sub CommandButton1_Click()
        Dim num As String * 6, name As String * 8, score As Integer
        num = TextBox1.Text
        name = TextBox2.Text
        score = Val(TextBox3.Text)
        Write #1, num, name, score
        TextBox1.Text = ""
        TextBox2.Text = ""
        TextBox3.Text = ""
        TextBox1.SetFocus
    End Sub
    
    Private Sub CommandButton2_Click()
        Close #1
        End
    End Sub
    
    Private Sub UserForm_Initialize()
        Open ThisWorkbook.Path & "\1.txt" For Output As #1
    End Sub
    
    运行结果~

    读取数据,用For...Next 语句

    Sub 的开发商的()
        Dim n As String, m As String, s As Integer
        Open ThisWorkbook.Path & "\1.txt" For Input As #1
        For i = 1 To 5
            Input #1, n, m, s
            Cells(i, 1) = n
            Cells(i, 2) = m
            Cells(i, 3) = s
        Next
        Close #1
    End Sub

     2. Print语句 

    格式:Print  #文件号[,表达式表]
            作用与Write一样。将一个或多个表达式的值写到与文件号相关的顺序文件中。其输出数据格式与Print方法在窗体上输出格式相似。

               示例:
                Print  #1, num, name, score              ‘对应按区格式
                Print  #1, num;name;score          ‘对应紧凑格式


    先用Input方式打开文件,然后采用Input或LineInput语句从文件中读出数据。通常,Input用来读出Write写入的记录内容,而Line Input用来读出Print写入的记录内容

    1.Input语句 
        一般格式:Input#文件号,变量名表
          功能:从指定文件中读出一个记录。变量个数和类型应该与要读取的记录所存储的数据一致。
           打开文件时,文件指针指向文件中的第1个记录,以后每读取一个记录,指针就向前推进一次。如果要重新从文件的开头读数据,则先关闭文件后打开

    距离:

    Sub sj()
        Open ThisWorkbook.Path & "\data1.txt" For Output As #1
        a = 123: b$ = "ABCD"    '在同一行赋值,用“:”
        Write #1, a, b$
        Close #1
        Open ThisWorkbook.Path & "\data1.txt" For Input As #1
        Input #1, c, d$
        Close #1
        Debug.Print c, d$
    End Sub


    Sub dfjslkdf()
        Open ThisWorkbook.Path & "\num2.txt" For Append As #1
        For i = 51 To 200
            If i Mod 7 = 0 Then Write #1, i
        Next
        Close #1
    End Sub
    
    Sub dfhdfdffdfdfdk()
        k = 0
        Open ThisWorkbook.Path & "\num2.txt" For Input As #1
        Do While Not EOF(1)
            Input #1, x
            Debug.Print x,
            k = k + 1
            If k Mod 4 = 0 Then Debug.Print
        Loop
    End Sub

    Debug.Print i    一行一行的输出

    Debug.Print i,    在一行输出,中间空很多的空格,具有一定的格式

    Debug.Print i;    在一行输出,中间空很少的空格,具有一定的格式

    可以加入If i Mod 2 = 0 Then Debug.Print    可以进行换行


    Print也有相似的用法:

    从TXT中读取数据,数据中间可以是空格、半角逗号

    Sub dhfkd()
        k = 0
        Dim arr(1 To 1100) As Variant
        Open ThisWorkbook.Path & "\num2.txt" For Input As #1
        Do While Not EOF(1)        'EOF(1)用来判断#1是否读到头了,到头返回TRUE
            Input #1, x           '读取一个数据
            k = k + 1
            arr(k) = x            '将读取的数据存在一个数组中
        Loop
        k = 0
        For i = 1 To 10
            For j = 1 To 110
                k = k + 1
                Cells(j, i) = arr(k)
            Next
        Next
        Close #1
    End Sub

    2.Line Input语句 

    格式:LineInput  #文件号,字符型变量
    功能:从打开的顺序文件中读出一个记录,即一行信息  

    用Line input来读取由Print写入的数据,Line Input读取一整行的数据~

    Sub djhfdljf()
        Open ThisWorkbook.Path & "\mytxt.txt" For Output As #1
        a = 123: b$ = "SBCD"
        Print #1, a, b$
        Print #1, a; b$
        Close #1
        Open ThisWorkbook.Path & "\mytxt.txt" For Input As #1
        Line Input #1, x$
        Debug.Print x$
        Line Input #1, x$
        Debug.Print x$
        Close #1
    End Sub


    3.Input函数           

    格式:Input(字符数,#文件号)
        功能:从文件中读取指定字符数的字符
        示例:A$=Input(20, #1)
            顺序文件的缺点是不能快速地存取所需的数据,也不容易进行数据的插入、删除和修改等工作,因此对于经常要修改数据或取出文件中个别数据,均不适合使用,但对于数据变化不大,每次使用时又需要从头往后顺序地进行读写,它还是不失为一种好的文件结构

    展开全文
  • vb6文件操作

    2018-05-09 16:42:44
    文章介绍文件的三种类型:1、顺序文件(文本文件)2、随机访问文件3、二进制文件。三种文件类型的操作方法。
  • 满意答案emily6066842013.08.29采纳率:47%等级:13已帮助:8470人文件操作函数1、Open 文件名 [For方式] [Access存取类型] [锁定] AS [#]文件号 [Len=记录长度]功能:为文件的输入输出分配缓冲区,并确定缓冲区所...

    满意答案

    emily606684

    2013.08.29

    采纳率:47%    等级:13

    已帮助:8470人

    文件操作函数

    1、Open 文件名 [For方式] [Access存取类型] [锁定] AS [#]文件号 [Len=记录长度]

    功能:为文件的输入输出分配缓冲区,并确定缓冲区所使用的存取方式

    说明:

    1) 方式:指定文件的输入输出方式,可选,默认是Random,可以是以下值

    a、 Output:指定顺序输出方式,将覆盖原有内容

    b、 Input:指定顺序输入方式

    c、 Append:指定顺序输出方式,在文件未尾追加内容

    d、 Random:指定随机存取方式,也是默认方式,在Random方式时,如果没有Access子句,则在执行Open语句时,VB将按下列顺序打开文件:读/写、只读、只写

    e、 指定二进制文件。在这种方式下,可以用Get和Put语句对文件中任何字节位置的信息进行读写。在Binary方式中,如果没有Access子句,则打开文件的类型与Random方式相同

    2)、存取类型:放在关键字Access之后,用来指定访问文件的类型。可以是下列类型之一

    a、 Read:打开只读文件

    b、Write:打开只写文件

    c、 Read Write:打开读写文件。这种类型只对随机文件、二进制文件及用Append方式打开的文件有效

    3)、锁定:该子句只在多用户或多进和环境中使用,用来限制其他用户或其他进程对打开进行读写操作。锁定类型包括:

    a、 默认:如不指定锁定类型,则本进程可以多次打开文件进行读写;在文件打开期间,其他进程不能对该文件执行读写操作

    b、Lock Shared:任何机器上的任何进程都可以对该文件进行读写操作

    c、 Lock Read:不允许其他进程读该 文件。只在没有其他Read存取类型的进程访问该文件时,才允许这种锁定。

    d、Lock Write:不允许其他进程写这个文件。只在没有其他Write存取类型的进程访问该文件时,才允许这种锁定

    e、 Lock Read Write:不允许其他进程读写这个文件

    如果不使用lock子句,则默认为Lock Read write

    4)、文件号:由用户自行指定一个由1~511之间的整数,只要该文件号未被使用就合法;打开文件后,可以用该文件号进行读写等操作

    5)、记录长度:是一个整型表达式。当选择该参量时,为随机存取文件设置记录长度。对于用随机访问方式打开的文件,该值是记录长度;对于顺序文件,该值是缓冲字符数。”记录长度”不能超过32767字节。对于二进制文件,将忽略Len子句

    举例:Open “price.dat” for Output as #1

    Open “C:\abc.dat” for radom as #1 len=256

    2、Close [#文件号][,#文件号]……:关闭文件

    3、Seek #文件号,位置:文件指针跳到指定位置,以字节为单位。取值1~pow(2,31)-1

    4、Seek (文件号):返回当前文件指针的位置

    5、FreeFile():取得一个未使用的文件号

    6、Loc(文件号):返回指定文件的当前读写位置

    7、LOF(文件号):返回文件长度

    8、EOF(文件号):用来测试文件是否结束,结束返回true

    9、Print #文件号,变量1,变量2,…变量n:按顺序将各变量的值写入顺序文件

    如果是print #文件号,则写入空行

    10、 Write #文件号,表达式表…:作用同 Print

    11、 Input #文件号,变量表….:读顺序文件,进行与Print相反的操作

    12、 Line Input #文件号,字符串变量:从顺序文件中读入一行

    13、 Input$(n,#文件号):从顺序文件读出 n个字符的字符串

    14、 Put #文件号,[记录号],变量:把除对象变量和数组变量外的任何变量(包括号含有单个数组元素的下标变量)的内容写入随机文件。

    例如:Put #2,,filebuff

    15、 Get #文件号,[记录号],变量:读随机文件,执行与put相反的操作

    16、 Get|put #文件号,[位置],变量:读写二制文件,位置是指下一次读写操作的位置。

    17、 Kill 文件名:删除文件

    18、 FileCopy 源文件名,目标文件名:复制文件

    19、 Name原文件名 as 新文件名:重命令文件

    00分享举报

    展开全文
  •  当时是大二···参加个天翼杯软件设计-_- 得了优胜奖 杯具~  用VB写个类似USB加密狗的东西···要操作文件,所以就有这篇东西了··   --------------- <br /> 最近在研究异或加密...

       当时是大二···参加个天翼杯软件设计-_- 得了优胜奖 杯具~

       用VB写个类似USB加密狗的东西···要操作文件,所以就有这篇东西了··

     

    ---------------

       最近在研究异或加密,虽说是最简单的文件加密方法,不过那个二进制的文件操作要上手搞清楚还不是那么简单的,刚开始还真被难到了,有些命令根本看不懂```后来还好上网了解了一下``

             Vb```以后还是投奔去delphi好熟手点,怎么说也是教过差不多一年小学生pascal的-_-``` 找了些关于二进制的文件操作的资料,觉得里面说得还算细的了,一时间熟记有点困难,边学边记··分享一下···

    (一)打开和关闭文件   
      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中目前的字节数.   
      使用方法可参考二进制文件的读操作。

       二进制文件的操作

    所有文件的存储其实质都是二进制的,二进制文件往往由两部分组成,一部分是文件头另一部分存放了文件的内容。文件头通常存放与文件格式有关的信息,以BMP等图象文件为例,它们的文件头中存放了是何种图形格式、图象大小、调色板等信息,要显示图象时先读取文件头以获得文件的详细信息,然后再按其格式把图象内容显示出来。用二进制方式可以操作任何的文件,当然至关重要的一点是要清楚了解所操作文件的文件头结构。

    VB中二进制文件操作主要应用的方法和函数有:Open,Close,Get,Put等。

    Open:在For后面的打开模式要用Binary。

    Close:关闭文件。

    Get:在指定位置取得文件的内容,如果省略位置则从当前位置读取。

    Put:在指定位置写入文件,如果省略位置参数就从当前位置写。


    下面结合代码讲解二进制文件的操作。

    下述程序完成了将两个文件结合成一个文件以及将这个结合后的文件再拆分成原来的两个文件。文件头的结构是自己定义的,非常简单,共8个字节(也就是两个长整型的长度),前4个字节存放第一个文件的长度,后4个字节存放第二个文件的长度。为了更直观地表达文件的结构,现假设有两个文件,第一个文件长度是100字节,第二个文件是200字节,那么合并后得到的文件应该是308字节。按顺序来看,文件的结构是:

    4第一文件的长度

    4第二文件的长度

    100第一文件的二进制内容

    200第二文件的二进制内容

    除了文件头的8字节长度是固定的后面的长度都会因文件的不同而变化的。

     

    ‘实现文件的合并

    Private Sub MergeFile()

    Dim strFileName1 As String '第一个文件

    Dim strFileName2 As String '第二个文件

    Dim strOutput As String '合并后的文件

    Dim aryContent() As Byte '用来读取文件的数组,每次读取前要重定义

    strFileName1 = "c:/a.bmp"

    strFileName2 = "c:/.bmp"

    strOutput = "c:/out.bmp"

    '注意下面三个Open语句都是用Binary模式打开的

    Open strOutput For Binary As #100

    Open strFileName1 For Binary As #1

    Open strFileName2 For Binary As #2

    Put #100, , LOF(1) '取得第一文件的长度,并把它写入到合并文件的文件头中

    Put #100, , LOF(2) '取得第二文件的长度,并写入到合并文件的文件头中


    ReDim aryContent(LOF(1) - 1) '重定义数组,为读取文件做准备

    Get #1, , aryContent() '取得第一文件的内容到数组

    Put #100, , aryContent() '把第一文件的内容写到合并文件中

    ReDim aryContent(LOF(2) - 1)

    Get #2, , aryContent()

    Put #100, , aryContent()

    '关闭文件

    Close #1

    Close #2

    Close #100

    End Sub

    ‘实现文件的拆分

    Private Sub SplitFile()

    Dim strFileName1 As String

    Dim strFileName2 As String

    Dim strFileSplit As String

    Dim aryContent() As Byte

    Dim lngLOF(1) As Long '存放从文件头取得的两个文件的长度

    strFileName1 = "c:/a2.bmp"

    strFileName2 = "c:/2.bmp"

    strFileSplit = "c:/out.bmp"

    Open strFileSplit For Binary As #100

    Get #100, , lngLOF(0) '取得第一文件的长度

    Get #100, , lngLOF(1) '第二文件的长度

    Open strFileName1 For Binary As #1

    Open strFileName2 For Binary As #2

    ReDim aryContent(lngLOF(0)-1) '用第一文件的长度重定义数组,为读取第一文件做准备

    Get #100, 9, aryContent() '从第9字节,即文件后面开始读取第一文件的内容

    Put #1, , aryContent() '把取得的内容写入到拆分文件中


    ReDim aryContent(lngLOF(1)-1)

    Get #100, 9 + lngLOF(0) + 1, aryContent() '从第9字节再加上第一文件的长度处开始读取第二文件的内容,这里可以清楚地看到文件头的作用了

    Put #2, , aryContent

    Close #1

    Close #2

    Close #100

    MsgBox "拆分完成。", vbInformation

    文本文件由于没有格式所以它的读写都比较简单和直观,而用二进制操作文件时其实质就是对文件头的理解,如果不知道文件头的结构那就无法对文件进行处理了,知道了文件头所包含的信息后,对文件的操作其实就是按规则进行Get、Put罢了。

    展开全文
  • &nbsp&nbsp[导读]:2021年计算机等级考试重点讲解:(二级VB )顺序访问模式顺序访问模式的规则最简单,指读出或...顺序文件的写入步骤:打开、写入、关闭;读出步骤:打开、读出、关闭。(1)打开文件打开文件...
  • 关于顺序文件的描述,下面正确的是 ________。A) 每条记录的长度必须相同B) 可通过编程对文件中的某条记录方便地修改C) 数据只能以ASCII码形式存放在文件中,所以可通过文本编辑软件显示D) 文件的组织结构复杂2....
  • 认识VB的随机文件

    千次阅读 2017-01-21 20:18:46
    随机文件是VB的一种类似于数据库的一种文件格式,它和顺序文件的最大区别是随机文件是以数据块为存储单位的(顺序文件则是以行或字符为单位的),就像把一大块蛋糕分成相等的N块,然后可以任意取出其中的某块,这也...
  • vb6 读写文件

    2017-10-23 14:41:00
    这也是VB特有的文件访问方式。 3、二进制文件:以二进制形式存放,PE程序文件一般都是这个类型。 二、操作方法 1、顺序文件 打开: Open 文件名 For Input | Output | Append As [#]文件号   Input打开读入,文件...
  • 随机文件  随机文件中每一个记录定长,并设置记录号,记录号从1开始。  存取记录时,只要说明所需记录的编号,系统就以此算出记录所在位置,然后加以写入或读出 初步认识  建立一个随机文件文件中包含...
  • vb 文件服务器

    2021-08-09 02:09:24
    vb 文件服务器 内容精选换一换密钥对鉴权方式的Windows云服务器,使用私钥文件获取登录密码失败。出现获取密码失败一般原因是Cloudbase-init注入密码失败。 Cloudbase-init注入密码失败原因有:网络原因导致云服务器...
  • vb文件的打开、文件的关闭

    千次阅读 2014-10-13 10:00:09
    数据文件的操作按以下步骤进行: 打开数据文件(首次操作为建立数据文件并且打开) 进行读写操作 ...关闭数据文件 ...1、文件的打开 ...Open 文件名 For 方式 [Access 存取类型] [lock] As ...方式:指定文件方式,有 Ap
  • 使用顺序文件 电脑硬盘上有成百上千的顺序文件。参数文件,错误日志,HTML文件以及所有类型的无格式文本文件都是顺序文件。...顺序文件就是访问它里面的记录时必须按它占据的顺序进行的文件,这意味
  • 前言:我们在编程中会经常需要将采集到的数据或者设置的参数保存到文件,不同的编程语言对文件的操作大同小异,在此进行记录。
  • 我们知道使用VBA打开一个电子表格指令,例如指令: Application.Workbooks.Open Filename:= "C:\Excel\Report.xls" ...接下来关于顺序,随机和二进制文件的章节将会带你直接接触你的数据。 文件访问类型 计算机
  • VB 读取文件 VB6.0 实用FSO

    千次阅读 2015-04-24 19:19:51
     从 Visual Basic 的第一版至今,VB中有关文件的处理都是通过使用 Open 、Write以及其它一些相关的语句和 函数 来实现的。随着 软件 技术的不断发展,加上面向对象 编程 概念的日臻成熟,这些文件操作语句已经不能...
  • VB讲课笔记12:文件管理

    千次阅读 2018-03-14 17:57:56
    (3)按访问方式分类 3、文件访问方法 (1)命令方式 (2)FSO对象模型 4、文件访问步骤 (1)打开文件 (2)读写文件 (3)关闭文件 二、顺序文件 1、打开文件 2、关闭文件 3、向顺序文件写数据 (1)...
  • VB文件的读写操作

    2010-12-17 20:39:35
     访问模式:计算机访问文件方式VB中有顺序、随机、二进制三种访问模式。 2. 顺序访问模式  顺序访问模式的规则最简单,指读出或写入时,从第一条记录“顺序”地读到最后一条记录,不可以...
  • 名词解释:  ... 访问模式:计算机访问文件方式VB中有顺序、随机、二进制三种访问模式。  2. 顺序访问模式  顺序访问模式的规则最简单,指读出或写入时,从第一条记录“顺序”地读到最后一条记录...
  • 字节逐位倒排序加密法是以比特为单位的换位加密方法,用VB实现的具体算法是:(1) 以二进制模式打开源文件;(2) 从源文件第I位读取一个字节,假设为字母“A”,得到“A”的ASCII值为65;(3) 将65转换成八位二进制串为...
  • VB中,用microsoft jet数据库引擎和数据访问对象dao(data access object)可以创建功能强大的客户/服务器应用程序。对远程数据库的访问是开发这类应用程序的关键环节,本文将介绍在VB中用dao通过miscrosoft jet...
  • 2019年3月计算机二级VB考试巩固试题及...启动窗体可以通过“工程属性”对话框指定C.Load方法兼有装入和显示窗体两种功能D.Hide方法可以将指定的窗体从内存中清除【答案】B(2)以下关于VB文件的叙述中,正确的是A.标...
  • VB 二进制文件的操作

    2012-05-12 08:31:46
    所有文件的存储其实质都是二进制的,二进制文件往往由两部分组成,一部分是文件头另一部分存放了文件的内容。...用二进制方式可以操作任何的文件,当然至关重要的一点是要清楚了解所操作文件文件头结构。 ...
  • vb:读写文本文件

    2012-03-04 21:23:21
    VB读写文件要用到以下语句: 1、Open语句打开文件。 2、读文件使用Line Input、Input #,(以上为文本方式)和Get(以上为二进制方式)。 3、写文件使用Print #、Write(以上为文本方式)和Put(以上为二进制方式)...
  • 11年级计算机专业VB试题(二)出题人:马玉辉一、选择题:1、下列操作不能向工程中添加窗体的是()A:执行“工程”菜单中的“添加窗体”命令B:单击工具栏中的“添加窗体”按钮C:用鼠标右键单击窗体,在弹出的快捷...
  • vb目录文件操作的三种方法

    千次阅读 2008-01-12 20:38:00
    可见,对目录和文件的操作是多么的重要.下面我们就和大家一起学习一下vb中可以应用的三种方法:1、使用现成的控件2、使用visualbasic中提供的方法3、使用windows提供的应用程序编程接口(api)。下面我们具体看看这些...
  • VB6的文件操作

    千次阅读 2007-09-28 12:12:00
    一、文件类型1、顺序文件(文本文件) :以ASCII码形式存放的文件。似乎还有Unicode码存放的,有没有BCD码的呢?2、随机访问文件:这种文件格式很有特点:文件中存放若干条等长的单元(也可以说是记录);每个单元...
  • 前提:一个偶然的机会要对一个已经开发比较完全的VB项目进行维护工作 整体代码量不高 大部分操作可以通过EXCEL的宏操作录制然后去复制 部分操作需要通过直接写代码去执行 这里涉及到一开始接触VB有代码基础的人观看 ...
  • VB中,用microsoftjet数据库引擎和数据访问对象DAO(dataaccessobject)可以创建功能强大的客户/服务器应用程序。对远程数据库的访问是开发这类应用程序的关键环节,本文将介绍在VB中用DAO通过miscrosoftjet数据库...
  • 高三计算机专业VB试题(二) (4页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!9.9 积分高三年级计算机专业VB试题(二)1、 选择题:1、 下列操作不能向工程中添加窗体的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 12,086
精华内容 4,834
关键字:

vb顺序文件访问方式