vbs读取服务器上的txt文件,用VBS读取每行一行的txt文件

Ekkehard.Hor..

12

您的文件具有有趣的EndOfLine标记.我们假设这些行由vbLf终止:

>> fn = "lf.txt"

>> goFS.CreateTextFile(fn).Write Replace("a b c ", " ", vbLf)

>> set ts = goFS.OpenTextFile(fn)

>> do until ts.AtEndOfStream

>> WScript.Echo ts.ReadLine

>> loop

>>

a

b

c

如您所见,.ReadLine可以处理vbLf(unix).但是,.ReadAll()上的Split()将失败:

>> t = goFS.OpenTextFile(fn).ReadAll()

>> a = Split(t, vbCrLf)

>> WScript.Echo UBound(a)

>> WScript.Echo a(0)

>>

0

a

b

c

t不包含单个vbCrLf,因此Split()返回一个UBound()== 0的数组,其中包含t作为其单个元素..回应至少看起来像3(4)行.你可以在vbLf上使用Split(),如果你真的需要一个行数组.

但是如果你的文件包含vbLf结尾,那么.ReadLine循环应该可以正常工作.

.ReadLine()无法处理vbCr(mac):

>> fn = "cr.txt"

>> goFS.CreateTextFile(fn).Write Replace("a b c ", " ", vbCr)

>>

>> set ts = goFS.OpenTextFile(fn)

>> do until ts.AtEndOfStream

>> WScript.Echo ts.ReadLine

>> loop

>>

c

b + cr'覆盖'a + cr然后由c + cr'覆盖'.除非使用vbCr作为分隔符,否则.ReadAll()方法也会失败.

但是,如果您的文件包含vbCr结尾,那么您的所有片段都不能"同时回显所有行".

你的档案来自外太空吗?

更新WRT评论:

您无法使用Filesystemobject读取UTF-8.将文件转换为UTF-16并在.OpenTextFile时使用format参数的Unicode选项,或使用ADODB Stream.

知道使用什么EOL标记仍然很有趣.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值