0

如何在这个现有的 vbs 循环中求和值?我想创建一个函数,对 len(sLine) 值求和(相加)并输出一行 oOutStream.WriteLine mySum

我不知道 1) 如何编写函数和 2) 是否将其嵌套在现有循环中或创建新循环。

Function MyOp()
Dim nLine, sLine, nCount

nCount = 1
Do Until oInStream.AtEndOfStream
nLine = oInStream.Line
sLine = oInStream.ReadLine

nCount = nCount +1
oOutStream.WriteLine "<p id='" & Pad(nLine, 2, 0) & "'>" & sLine & "</p>"

Loop
MyOp = nCount

End Function
4

1 回答 1

0

如果我做对了那...

Function MyOp()
    Dim nLine, sLine, nCount, nLen

    nCount = 1
    Do Until oInStream.AtEndOfStream
        nLine = oInStream.Line
        sLine = oInStream.ReadLine
        nLen  = nLen + Len(sLine)

        nCount = nCount +1
        oOutStream.WriteLine "<p id='" & Pad(nLine, 2, 0) & "'>" & sLine & "</p>"
    Loop
    oOutStream.WriteLine nLen
    MyOp = nCount
End Function

但是您可以使用File.Size属性获得相同的结果,而无需计数。

Set fso = CreateObject("Scripting.FileSystemObject")
fLen    = fso.GetFile("file.ext").Size

PS自我更正:ReadLine删除尾随换行符(Chr(13)和Chr(10)),因此您获得的总和Len(string)将小于Size财产。

至于功能,我用文本文件对其进行了测试,不知道如何在TextStream没有保存文件的情况下从 EditPlus 中获取对象。如果不是秘密,你是怎么做到的?

于 2013-04-02T13:36:26.603 回答