gpt4 book ai didi

vba - 使用vba从带有中文字符的文本文件中提取文本

转载 作者:行者123 更新时间:2023-12-04 20:40:20 27 4
gpt4 key购买 nike

我有一批大约 100,000 个文本文件,我想使用 vba 将它们提取为字符串。
在过去,我一直这样做没有问题:

Sub Main()
Dim PathAndName As String
Dim TextFile As Integer
Dim TextString() As String
Redim TextString(100000)
For i = 1 To 100,000
PathAndName = "C:\File_" & i & ".ext"
TextFile = 1
Open PathAndName For Input As TextFile
TextString(i) = Input(LOF(TextFile), TextFile)
Next i
End Sub

这次,脚本返回错误“Input Past End of File”错误 62。
我能发现的唯一不同是这次文本文件包含一些汉字,实际上我并不感兴趣。这就是为什么我认为这是问题的根源。
汉字出现在文件的第一行。

任何帮助表示赞赏。谢谢!

最佳答案

我怀疑您的文本文件现在采用多字节编码。有一个字符被编码为两个或三个字节。所以LOF(TextFile)不会返回正确的字符数,而是字节数。但是Input(LOF(TextFile), TextFile)需要字符数,因为它必须创建 String .

你可以使用:

Sub Main()
Dim PathAndName As String
Dim TextFile As Integer
Dim TextString() As String
Redim TextString(100000)
For i = 1 To 100000
PathAndName = "C:\File_" & i & ".ext"
TextFile = 1
Open PathAndName For Input As TextFile

Dim sLine As String
Dim sTextString As String
sLine = ""
sTextString = ""

Do While Not EOF(TextFile)
Input #TextFile, sLine
sTextString = sTextString & sLine
Loop

TextString(i) = sTextString

Close #TextFile

Next i
End Sub

但更好的方法是使用 ADODB.Stream而不是恐龙VB文件访问方法。但这是一种完全不同的方法。所以你应该阅读 ADODB.Stream自己先。

关于vba - 使用vba从带有中文字符的文本文件中提取文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34961611/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com