文件操作——写入
时间:2022-07-22
本文章向大家介绍文件操作——写入,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
前面我们说到了文件的读取,读取的文件是我们手动创建的txt文本文档,VBA也是可以对文件进行写操作的。
1、文件的写入:
在VBA里,我们要对文件进行二进制的写操作,使用的是:
Open pathname For mode [ Access access ] [ lock ] As [ # ] filenumber [ Len = reclength ]
Put[ # ] filenumber、[ recnumber ]、 varname
Close [ filenumberlist ]
打开Open-写入Put-关闭Close,仍然是标准的3个步骤。
2、文件写入代码
我们来尝试用VBA代码对文件进行写操作:
Sub WriteTxtByOpenBin()
Dim num_file As Integer
Dim str As String
str = "测试文件写入"
Dim b() As Byte
'将string转换为byte数组
b = str
'获取1个文件号
num_file = VBA.FreeFile
Open ThisWorkbook.Path & "put.txt" For Binary Access Write As #num_file
'写入数据
Put #num_file, 1, b
'关闭文件
Close #num_file
End Sub
没出什么问题的话,在程序文件的目录下,会生成1个put.txt文件,我们双击打开的话,你应该会发现乱码了:
为什么和我们写入的str = "测试文件写入"不一样呢?
其实这还是编码原因造成的,记得我们文件读取里提到的那个StrConv吧,我们进行转换一下:
Sub WriteTxtByOpenBin()
Dim num_file As Integer
Dim str As String
str = "测试文件写入"
Dim b() As Byte
'将string转换为byte数组
b = VBA.StrConv(str, vbFromUnicode)
'获取1个文件号
num_file = VBA.FreeFile
Open ThisWorkbook.Path & "put.txt" For Binary Access Write As #num_file
'写入数据
Put #num_file, , b
'关闭文件
Close #num_file
End Sub
这时候打开就正常了。
上面我们说的是mode为Binary的方法,VBA里还提供了Output ,这时候可以直接使用Write来写入String等各种数据类型的数据,VBA还会帮忙处理好各种数据类型的写入方式,比如String类型会加上双引号,日期会加上#等等。甚至会帮忙将Unicode编码转换为ANSI编码,这些都会帮我们处理好。
这也是前面在数组Array提到过的:过度的封装(而且我们看不到源码),让我们这些使用者对底层的一些知识一无所知。
虽然这个很好用,但希望使用者一定要先去理解如何按照mode为Binary的方法去读取、写入文件,在要处理的地方都自己手动去处理好,真正能够理解了原理后,图方便再去使用mode为Input、Output等。
- 建立可扩展的silverlight 应用框架 step-6
- .NET4.0下网站应用程序用UrlRewriter.dll重写无后缀路径 (在IIS7.5中的配置方法)
- 苹果为你的心跳开发一个读者
- 建立可扩展的silverlight 应用框架 step-5
- 安卓 iOS 版双双更新!还带来一大波小游戏
- 建立可扩展的silverlight 应用框架 step-4
- 全自动驾驶,吹牛容易实现难!有90%的人都不了解这些细节
- .NET4.0下web应用程序用UrlRewriter.dll重写无后缀路径
- Silverlight中摄像头的运用—part2
- 区块链小白投资入门操作指南(上)
- 《我的WCF之旅》博文系列汇总
- 网站出现“Service Unavailable”提示该如何解决
- Silverlight 4 中摄像头的运用—part1
- Silverlight 4 中摄像头的运用—part1
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法