VB - 查找文件替换

时间:2016-08-25 07:55:44

标签: vb.net replace sed

我有以下文件:

/home/InputDirectory/DHddmmyy.txt
/home/InputDirectory2/DHddmmyy.txt
/home/InputDirectory3/DHddmmyy.txt

我想做" Sed"相当于VB,所以我不必调用cygwin sed来完成这项工作,最终结果应该是:

/home/InputDirectory/DH250816.txt
/home/InputDirectory2/DH250816.txt
/home/InputDirectory3/DH250816.txt

该变量将作为参数传递给脚本。对任何VB都没有经验,所以任何帮助都会非常感激。我发现的唯一一件事是:

Dim TestString As String = "Shopping List"
' Returns "Shipping List".
Dim aString As String = Replace(TestString, "o", "i")

但我如何迭代每一行来执行该操作?有没有办法为文件的每一行执行此操作?提前谢谢。

2 个答案:

答案 0 :(得分:1)

尝试以下代码。 在这里,我创建了一个替换" ddmmyy"当前日期(格式相同)

Function FormatFileName(sFileName As String) As String
    Dim sReturnValue As String

    sReturnValue = Replace(sFileName, "ddmmyy", Format(Now(), "ddmmyy"), , ,   vbTextCompare)

    FormatFileName = sReturnValue
End Function

您可以使用以下测试程序

测试代码
Sub Process()
    Dim sOutputFileName As String

    sOutputFileName = FormatFileName("/home/InputDirectory/DHddmmyy.txt")
    Debug.Print sOutputFileName

    sOutputFileName = FormatFileName("/home/InputDirectory2/DHddmmyy.txt")
    Debug.Print sOutputFileName

    sOutputFileName = FormatFileName("/home/InputDirectory3/DHddmmyy.txt")
    Debug.Print sOutputFileName

End Sub

希望它有所帮助!!

答案 1 :(得分:1)

在您的情况下,您可以立即替换所有

Dim text = File.ReadAllText("C:\1.txt")
text = text.Replace("ddmmyy", Now.ToString("ddMMyy")) 
File.WriteAllText("C:\1.txt", text)