Bootstrap

VBS 中读写 csv 格式的中文文件

在 VBS 中读写 csv 格式的中文文件,可以按照以下步骤进行操作:

  1. 读取 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 表示采用系统默认编码。

  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

;