【发布时间】:2016-07-09 05:15:37
【问题描述】:
我正在通过 HP-UFT(前 QTP)使用 vbscript。 我面临的问题看起来很简单,但我无法解决。
我有从某个系统导出的 .CSV 文件,并且此文件中没有完成的 CRLF。
我需要一个简单的修复来追加新行到这个文件(我知道这可能是写入另一个文件的解决方法) 我正在使用这样的 FileSystemObject:
Set objFile = objFSO.OpenTextFile(outFile,8)' (outFile,8, true/false/default)
objFile.Write "test string" & vbCrLf ' and other different combinations
我没有使用 ADODB.Stream 因为它没有附加功能,我不需要额外的文件
当我尝试后在记事本中打开文件时,我看到的是空方块而不是 CRLF。我认为这是因为使用 UCS-2 Little Endian 编码创建的文件。我对 utf-8 没有这样的问题
PS 也许可以更快速地修复系统变量?我在网络中发现可以通过一些系统变量更改所有创建文件的默认编码,但找不到它的名称。 我在地区和语言中的语言 -> 管理 -> 非 Unicode 的语言是英语
【问题讨论】:
-
“没有使用
ADODB.Stream,因为它没有附加功能”,是这样吗?你叫什么Write(),只需先使用Position属性移动到EOS。 -
您不能使用
vbCrLf,因为 VBScript 不是 UCS-2,因此当您真正需要0D00 0A00时会产生0D0ACarriage Return LineFeed。 -
读入文本文件,追加文本,在现有文件上写入新文本。
-
Microsoft 将这两个术语(UCS-2 和 UTF-16)用于相同的编码。从技术上讲,它可能并不完全正确,但它足够接近,因此在这种情况下差异并不重要。 [Wikipedia]