vbscript 在读取文本文件时防止文本转换
vbscript prevent text conversion during reading from text file
我在从文本文件中读取文本时遇到问题。下面是创建文本文件(如果不存在)的代码,然后在文件中输入文本:
Dim fso, strUser, strUserInit, strUserData, strNewFile
Dim strGetUser, strNextUser, strInit
Const ForReading = 1, ForWriting = 2, ForAppending = 8
' %user% contains USERPROFILE (C:\Users\username) gathered earlier from Macro Express
strUser = "%user%"
strUserInit = strUser & "\Documents\UserInitFile.txt"
If fso.FileExists(strUserInit) Then
' Do nothing
Else
strUserData = UCase(InputBox("Please enter your first and last initials (ex. John Doe = JD)", "Enter Initials"))
Set strNewFile = fso.CreateTextFile(strUserInit, ForWriting, True)
strNewFile.WriteLine(strUserData)
strNewFile.Close
End If
Set strGetUser = fso.OpenTextFile(strUserInit, ForReading)
Do Until strGetUser.AtEndOfStream
strNextUser = strGetUser.ReadAll
Loop
strInit = Left(strNextUser, 2)
实际情况是,当提示输入第一个和最后一个首字母时,我输入了首字母 "LP"。但是,当我从文件中读取时,它们最终变成了“ÿþ”。我查看了创建的文件,它显示 "LP"。从文件读取时如何防止文本被转换?由于其他原因,我使用了完全相同的代码,并且在从文件中读取时从未转换过文本。
使用docs看看为什么
fso.CreateTextFile(strUserInit, ForWriting, True)
创建一个 UTF-16 编码的文件。请参阅 以了解为什么我担心会有一种病毒四处传播,使人们混淆 .OpenTextFile 和 .CreateTextFile。
我在从文本文件中读取文本时遇到问题。下面是创建文本文件(如果不存在)的代码,然后在文件中输入文本:
Dim fso, strUser, strUserInit, strUserData, strNewFile
Dim strGetUser, strNextUser, strInit
Const ForReading = 1, ForWriting = 2, ForAppending = 8
' %user% contains USERPROFILE (C:\Users\username) gathered earlier from Macro Express
strUser = "%user%"
strUserInit = strUser & "\Documents\UserInitFile.txt"
If fso.FileExists(strUserInit) Then
' Do nothing
Else
strUserData = UCase(InputBox("Please enter your first and last initials (ex. John Doe = JD)", "Enter Initials"))
Set strNewFile = fso.CreateTextFile(strUserInit, ForWriting, True)
strNewFile.WriteLine(strUserData)
strNewFile.Close
End If
Set strGetUser = fso.OpenTextFile(strUserInit, ForReading)
Do Until strGetUser.AtEndOfStream
strNextUser = strGetUser.ReadAll
Loop
strInit = Left(strNextUser, 2)
实际情况是,当提示输入第一个和最后一个首字母时,我输入了首字母 "LP"。但是,当我从文件中读取时,它们最终变成了“ÿþ”。我查看了创建的文件,它显示 "LP"。从文件读取时如何防止文本被转换?由于其他原因,我使用了完全相同的代码,并且在从文件中读取时从未转换过文本。
使用docs看看为什么
fso.CreateTextFile(strUserInit, ForWriting, True)
创建一个 UTF-16 编码的文件。请参阅