转换编码vbscript后从文本文件中删除空行



我有一个转换文本文件编码的脚本。我的文本文件末尾有一行空白,但转换后,文件末尾有两行空白。有谁能帮忙吗?下面你会发现我的vbscript:

Const adTypeBinary          = 1
Const adTypeText            = 2
Const adSaveCreateNotExist  = 1
Const adSaveCreateOverWrite = 2
Const adWriteLine = 1
Const adReadLine = -2
Const adLF = 10
Const adCR = 13
Const adCRLF = -1
Set streamUTF8 = CreateObject("ADODB.Stream")
Set streamASCII = CreateObject("ADODB.Stream")
set args = Wscript.arguments
strOutOne= args(0)
streamUTF8.Open
streamUTF8.Type = adTypeText
streamUTF8.LineSeparator = adCRLF
streamUTF8.Charset = "UTF-8"
streamUTF8.LoadFromFile = strOutOne
streamASCII.Open
streamASCII.Type = adTypeText
streamASCII.LineSeparator = adCRLF
streamASCII.CharSet = "us-ascii"
Do Until streamUTF8.EOS
streamASCII.WriteText streamUTF8.ReadText(adReadLine), adWriteLine
Loop
streamASCII.SaveToFile(strOutOne), adSaveCreateNotExist

由于您正在指定adWriteLine,因此与每一行一样,将写入最后一行(空行(,并添加额外的行分隔符,从而创建第二行。

在将该行写入ASCII流之前,您可以检查该行是否为空:

sLine = streamUTF8.ReadText(adReadLine)
If Trim(sLine) <> "" Then streamASCII.WriteText sLine, adWriteLine

如果文件中其他位置没有空行,这将起作用。否则,它也会删除这些。

您还可以考虑使用adReadAll一次性读取整个流,然后使用streamASCII.WriteTextadWriteChar:将其全部写入

streamASCII.WriteText streamUTF8.ReadText(adReadAll), adWriteChar

最新更新