VBscript - 热写入特定的空行?

时间:2016-11-01 16:01:37

标签: vbscript

我需要在template.txt文件中的第14行插入strText。第14行在写入之前总是空白(有点像追加我猜)。

我真正需要的是将第21行复制到第14行。不确定实现此目的的更简单方法是什么?

这是我到目前为止所做的工作。下面的代码是template.txt。

df_agg = df.groupBy('cs_username').agg(*aggs).collect()

这是template.txt:

Dim objFSO : Set objFSO = CreateObject("Scripting.FileSystemObject")
DIM Infile : Infile = "C:\template.txt"     
Set tempFile = objFSO.OpenTextFile (Infile)
strText = tempFile.ReadAll
tempFile.Close

strNewText = Replace(strText, "","Channel_LandWaterMask = 3.0")
Set tempFile = objFSO.OpenTextFile (Infile, 2)
tempfile.Writeline 14, strNewText    ‘(How would I write this???)
tempFile.Close

2 个答案:

答案 0 :(得分:1)

看一下下面的例子:

sContent = ReadTextFile("C:\template.txt", 0)
aContent = Split(sContent, vbCrLf)
aContent(13) = aContent(20) & vbCrLf & aContent(13)
sContent = Join(aContent, vbCrLf)
WriteTextFile sContent, "C:\template.txt", 0

Function ReadTextFile(sPath, lFormat)
    ' lFormat -2 - System default, -1 - Unicode, 0 - ASCII
    With CreateObject("Scripting.FileSystemObject").OpenTextFile(sPath, 1, False, lFormat)
        ReadTextFile = ""
        If Not .AtEndOfStream Then ReadTextFile = .ReadAll
        .Close
    End With
End Function

Sub WriteTextFile(sContent, sPath, lFormat)
    ' lFormat -2 - System default, -1 - Unicode, 0 - ASCII
    With CreateObject("Scripting.FileSystemObject").OpenTextFile(sPath, 2, True, lFormat)
        .Write sContent
        .Close
    End With
End Sub

注意,它在第14行之前插入第21行的内容,从而保留换行符,因为第14行的内容是换行符。如果您只想替换,请使用aContent(13) = aContent(20)代替aContent(13) = aContent(20) & vbCrLf & aContent(13)

答案 1 :(得分:0)

Do Until Inp.AtEndOfStream
    Count=Count + 1
    Line=Inp.readline
    If Count = 14 then
        outp.writeline "My line 14"
    Else
        outp.writeline Line
    End If
Loop

是您的问题类型的模式。读一行,做出决定,写一些东西。