Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access数据库-模块/函数/VBA

文件管理输入与输出(Word文稿)

时 间:2010-05-07 22:25:57
作 者:江羽   ID:3967  城市:南昌
摘 要:文件管理(I/O)输入与输出,附Word文稿
正 文:

       文件根据访问方式的不同,分为三种类型:顺序文件、随机文件、二进制文件。

下结合具体实例,演示三种类型文件操作。

1)顺序方式操作文件(具体参看实例)

u    Input)模式实例:读取指定 TestFile.txt文件内容并显示。

    Dim strFileName As String     '文件名及完整路径

    Dim lngHandle    As Long      '文件号或称文件句柄

    Dim strAll          As String     '所读取的文本文件的所有内容

    Dim strLine        As String     '在循环中存放每行的内容

   

    strFileName = CurrentProject.Path & "\TestFile.txt"  '文件名称及完整路径

    lngHandle = FreeFile()  '通过FreeFile函数取得一个空闲文件号(也称文件句柄)

  

    Open strFileName For Input As lngHandle  'Input模式打开文件

    '循环直到文件尾,EOF函数避免在文件结尾进行操作错误

    Do While Not EOF(lngHandle)

         '通过Line Input语句每次读取一行存放在strLine变量中

         Line Input #lngHandle, strLine

       '每次读取的内容循环赋值到strAll字符串变量,

        '由于Line Input去掉了换行符,所以这里补上

        '你也可以通过Chr(13) & Chr(10) 实现换行

        strAll = strAll & strLine & vbCrLf

    Loop

    Close lngHandle    '关闭文件

   

    '在立即窗口测试得到的内容

Debug.Print strAll

 

u       Output)模式实例:将指定文本写入并覆盖TestFile.txt文件内容,用Output写入会自动检测指定文件是否存在,如果不存在则创建该文件。

Dim strFileName As String      '文件名及路径

       Dim lngHandle    As Long        '文件号或称文件句柄

       Dim strWrite       As String      '要写入的文本内容

   

strWrite = "我是江羽,这是测试文本。"                  '准备要写入的内容

       strFileName = CurrentProject.Path & "\TestFile.txt"  '文件名称及完整路径

       lngHandle = FreeFile()            '取得一个空闲文件号(也称文件句柄)

    

       Open strFileName For Output As lngHandle      ' Output模式打开文件

       '关键字也可以改 Write ,它与 Print 不同在于会自动加上引号

       Print #lngHandle, strWrite     '写入文本

       Close lngHandle                   '关闭文件

 

u       Append)模式实例:将指定文本追加写入TestFile.txt文件,用Append写入会自动检测指定文件是否存在,如果不存在则创建该文件。

    Dim strFileName As String     '文件名及路径

    Dim lngHandle    As Long      '文件号或称文件句柄

    Dim strWrite      As String     '要写入的文本内容

    

strWrite = "我是江羽,这是测试文本。"                  '准备要写入的内容

strFileName = CurrentProject.Path & "\TestFile.txt"  '文件名称及完整路径

    lngHandle = FreeFile()            '取得一个空闲文件号(也称文件句柄)

   

    Open strFileName For Append As lngHandle    ' Append模式打开文件

    '关键字也可以改用 Write ,它与 Print 不同在于会自动加上引号

    Print #lngHandle, strWrite     '写入测试文本

    Close lngHandle                   '关闭文件

2)随机(Random)方式操作文件

示例以随机方式操作TestFile.dat文件,写入一笔数据,文件中含有用户自定义数据类型 Record 的记录。

' 在标准模块中建一个自定义数据类型

Type Record   '定义用户自定义数据类型

     ID      As String * 3    'ID

     Name As String * 20  '姓名

End Type

 

' 在对象事件中插入如下程序代码

Dim MyRecord        As Record   ' 声明为自定义数据类型变量

Dim strFileName     As String    ' 文件名及路径

Dim lngHandle        As Long      ' 文件号或称文件句柄

 

strFileName = CurrentProject.Path & "\TestFile.dat"   ' 文件名称及完整路径

lngHandle = FreeFile()                          ' 取得一个空闲文件号(也称文件句柄)

 

' Random 随机模式打开文件

' 假如该文件不存在,则创建一个新的文件

Open strFileName For Random As lngHandle Len = Len(MyRecord)

    ' 将数据赋值给自定义数据变量

    MyRecord.ID = "1"

    MyRecord.Name = "江羽"

    ' 通过Put语句保存第一笔记录

    ' 如果将Put换成Get语句可以获取指定节点记录

    ' 通过Get语句读取记录方法,具体参看实例

    Put lngHandle, 1, MyRecord

Close lngHandle

3)二进制(Binary)方式操作文件

示例:通过二进制读取mdb自身,同时将读取数据写入新生成的mdb文件,达到备份当前数据库目的。

Dim TempByte  As Byte       '临时存放字节数据

Dim strCurrDb  As String     '当前数据库名及完整路径

Dim strBackDb  As String     '备份文件名及所在路径

Dim I               As Long       '定义循环变量

 

'赋值当前数据库及完整路径给字符串变量

strCurrDb = CurrentDb.Name

'赋值备份的数据库及完整路径

strBackDb = CurrentProject.Path & "\back.mdb"

   

'打开当前要备份的数据库,准备读取(Read)字节内容

Open strCurrDb For Binary Access Read As #1

'打开要备份的数据库,准备写(Write)前面读取的当前数据库内容

'因为备份文件不存在,会在指定路径创建一个文件

Open strBackDb For Binary Access Write As #2

   

'从头向末尾读取当前数据库字节并同时写入到备份数据库文件

For I = 1 To LOF(1)

      Get #1, I, TempByte    'Get语句:读取文件中数据

      Put #2, I, TempByte    'Put语句:将数据写入文件

Next I

   

'关闭文件

Close #1

Close #2

 

                                                                                      江羽  2010-05-07

顺序文件实例
随机文件实例
二进制文件实例

Word文稿下载: 点击下载此附件 

 



Access软件网QQ交流群 (群号:54525238)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助