在 VBS 中读写 csv 格式的中文文件,可以按照以下步骤进行操作:
- 读取 csv 文件:使用
FileSystemObject
对象和OpenTextFile
方法来打开并读取 csv 文件。示例代码如下:
Copy Code
Dim fso, file
Set fso = CreateObject("Scripting.FileSystemObject")
Set file = fso.OpenTextFile("C:\path\to\your\file.csv", 1, False, -1)
' 逐行读取文件内容
Do Until file.AtEndOfStream
Dim line
line = file.ReadLine()
' 处理每一行内容
Loop
' 关闭文件
file.Close
Set file = Nothing
Set fso = Nothing
其中,第二个参数 1
表示以只读方式打开文件,第三个参数 False
表示不创建新文件,第四个参数 -1
表示采用系统默认编码。
- 写入 csv 文件:使用
FileSystemObject
对象和OpenTextFile
方法来打开并写入 csv 文件。示例代码如下:
Copy Code
Dim fso, file
Set fso = CreateObject("Scripting.FileSystemObject")
Set file = fso.CreateTextFile("C:\path\to\your\file.csv", True, False)
' 将内容写入文件
file.WriteLine "列1,列2,列3"
file.WriteLine "值1,值2,值3"
' 关闭文件
file.Close
Set file = Nothing
Set fso = Nothing
其中,第二个参数 True
表示在文件末尾追加内容,第三个参数 False
表示不创建新文件。
需要注意的是,如果 csv 文件中包含中文,则需要使用 UTF-8 编码进行读写操作。可以在打开文件时指定 -1
参数,表示采用系统默认编码;或者使用 ADODB.Stream
对象,手动指定编码方式。示例代码如下:
Copy Code
Const adTypeText = 2
Const adStreamModeReadWrite = 3
Dim stream
Set stream = CreateObject("ADODB.Stream")
' 打开文件,并设置编码方式
stream.Type = adTypeText
stream.Mode = adStreamModeReadWrite
stream.Charset = "utf-8"
stream.Open
stream.LoadFromFile "C:\path\to\your\file.csv"
' 读取文件内容
Dim content
content = stream.ReadText(-1)
' 修改文件内容
content = Replace(content, "要替换的内容", "替换后的内容")
stream.Position = 0
stream.WriteText content
' 关闭文件
stream.Flush
stream.Close
Set stream = Nothing