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

VBA 读取/写入文本文件

时 间:2017-12-05 13:11:00
作 者:别逗了好么   ID:204  城市:广州
摘 要:VBA 读取/写入文本文件
正 文:

本文转载自:http://blog.csdn.net/hutuchongaini/article/details/44102861

原作者:别逗了好么


1、Open 语句 

打开方式有 
Input:以读取方式打开。
Output:以写入方式打开。
Append:以追加方式,即添加内容到文件末尾打开。
Binary:以二进制方式打开。
Random:以随机方式打开,如果未指定方式,则以 Random 方式打开文件。
 Open pathname For mode As [#]filenumber
 Open "c:\a.txt" For Output As #1
filenumber  是一个有效的文件号,范围在 1 到 511 之间。
如果 pathname 指定的文件不存在,那么,在用 Append、Binary、Output、或 Random 方式打开文件时,可以建立这一文件。 

2、Close 语句 
语法:Close [filenumberlist]
     filenumberlist 参数为一个或多个文件号,若省略 filenumberlist,则将关闭 Open 语句打开的所有活动文件。 
说明:打开文件后,必须在使用完后关闭文件。
 
3、EOF 函数 
语法:EOF(filenumber) 
功能:返回一个 Integer,它包含 Boolean 值 True,表明已经到达为 Random 或顺序 Input 打开的文件的结尾。
Open "c:\a.txt"  For Input As #1 ‘以读入方式打开c:\a.txt
Do While Not EOF(1)  '未到达结尾
          Line Input #1, s1     '读入一行,放入s1变量中
        Loop
        Close #1 


4、LOC 函数 
语法:LOC(filenumber) 
功能:返回一个 Long,在已打开的文件中指定当前读/写位置。 
Dim MyLocation, MyLine 
Open "TESTFILE" For Binary As #1   ' 打开刚创建的文件。
 Do While MyLocation < LOF(1)   ' 循环至文件尾。 
MyLine = MyLine & Input(1, #1)   ' 读入一个字符到变量中。 
MyLocation = Loc(1)   ' 取得当前位置。  ' 在立即窗口中显示。  
Debug.Print MyLine : Tab : MyLocation  Loop  Close #1   ' 关闭文件。
 
5、Input # 语句  
语法:Input #filenumber, varlist
功能:从已打开的顺序文件中读出数据并将数据指定给变量。 (有文字中有不在引号中的,会被认为是分隔符)
说明:通常用 Write # 将 Input # 语句读出的数据写入文件。为了能够用 Input # 语句将文件的数据正确读入到变量中,在将数据写入文件时,要使用 Write # 语句而不使用 Print # 语句。使用 Write # 语句可以确保将各个单独的数据域正确分隔开。 


6、Line Input # 语句  
语法:Line Input #filenumber, varname 
功能:从已打开的顺序文件中读出一行并将它分配给 String 变量。 
说明:通常用 Print # 与 Line Input # 语句配合使用。Line Input # 语句一次只从文件中读出一个字符,直到遇到回车符 (Chr(13)) 或回车–换行符 (Chr(13) + Chr(10)) 为止。回车–换行符将被跳过,而不会被附加到字符串上。 


7、Input 函数 
语法:Input(number, [#]filenumber),其中number 指定要返回的字符个数。 
功能:返回 String,它包含以 Input 或 Binary 方式打开的文件中的字符。
说明:通常用 Print # 或 Put 将 Input 函数读出的数据写入文件。Input 函数只用于以 Input 或 Binary 方式打开的文件。
与 Input # 语句不同,Input 函数返回它所读出的所有字符,包括逗号、回车符、空白列、换行符、引号和前导空格等。 
示例:
Dim MyChar
Open "f:\test.txt" For Input As #1
Do While Not EOF(1)       ' 循环至文件尾。
    MyChar = Input(1, #1)      ' 读入一个字符。
    Debug.Print MyChar      ' 显示到立即窗口。
Loop
Close #1 

8、Write # 语句  
语法:Write #filenumber, [outputlist] 
功能:将数据写入顺序文件。 
如果省略 outputlist,并在 filenumber 之后加上一个逗号,则会将一个空白行打印到文件中。多个表达式之间可用空白、分号或逗号隔开。空白和分号等效。 
与 Print # 语句不同,当要将数据写入文件时,Write # 语句会在项目和用来标记字符串的引号之间插入逗号。 

9、Print # 语句 
语法:Print #filenumber, [outputlist] 
outputlist 参数的设置如下:
[{Spc(n) | Tab[(n)]}] [expression] [charpos] 
Spc(n) 用来在输出数据中插入空白字符,而 n 指的是要插入的空白字符数。
Tab(n) 用来将插入点定位在某一绝对列号上,这里,n 是列号。使用无参数的 Tab 将插入点定位在下一个打印区的起始位置。
expression 要打印的数值表达式或字符串表达式。
charpos 指定下一个字符的插入点。使用分号将插入点定位在上一个显示字符之后。用 Tab(n) 将插入点定位在某一绝对的列号上,用无参数的 Tab 将插入点定位在下一个打印区的起始处。如果省略 charpos,则在下一行打印下一个字符。
  
Open "F:\test.txt" For Output As #1         ' 打开输出文件。
Print #1, "This is a test"                  ' 将文本数据写入文件。
Print #1,                                   ' 将空白行写入文件。
Print #1, "Zone 1"; Tab; "Zone 2"           ' 数据写入两个区(print zones)。
Print #1, "Hello"; " "; "World"             ' 以空格隔开两个字符串。
Print #1, Spc(5); "5 leading spaces "       ' 在字符串之前写入五个空格。
Print #1, Tab(10); "Hello"                  ' 将数据写在第十列。


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

常见问答:

技术分类:

相关资源:

专栏作家

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