0

作为我目前正在处理的 SSIS 包的一部分,我需要替换文本文件行中的 where 子句。

我在想我会使用带有脚本的脚本任务VB 2010来完成此任务,我一直在搜索并成功找到了很多搜索和替换字符串的方法,但我需要搜索一个字符串然后替换整行包含它。

例如,文本文件可能包含:

Select= *

where= SDUPMJ>112310

我想只搜索 ' where=' (因为实际的子句每次都会不同),并将整行替换为 ' where= SDUPMJ>112350'

4

1 回答 1

1

如果它本身存在于一行中,请使用流式阅读器。

这是我如何做到的示例:

Imports System.IO
Imports System.Text

Public Class Form1

Dim MyPath As String = "Path To Your Text File"

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim Rdr As New StreamReader(MyPath)
    Dim ln As String
    Dim NewFile As New StringBuilder

    ln = Rdr.ReadLine

    Do Until ln Is Nothing

        If ln.StartsWith("where=") Then ln = "New Where Clause"
        NewFile.AppendLine(ln)
        ln = Rdr.ReadLine
    Loop

    Rdr.Close()

    File.WriteAllText(MyPath, NewFile.ToString)

End Sub
End Class

希望这可以帮助

于 2012-11-06T14:43:32.417 回答