Replacing text function value input in txt file not work

◇◆丶佛笑我妖孽 提交于 2020-06-23 04:21:09

问题


This is my expiration.txt file :

foo1; 2020-03-01 13:33;
foo2; 2020-02-01 08:45;
foo3; 2020-01-01 11:30;

I need open the expiration.txt file and replace the all date value from:

  1. 2020-03-01 13:33 to 2020-03-01
  2. 2020-02-01 08:45 to 2020-02-01
  3. 2020-01-01 11:30 to 2020-01-01

I have tried this code without success, because the replace not working.

Const ForReading = 1
Const ForWriting = 2
' create object
set oFSO = CreateObject("Scripting.FileSystemObject")
' open the input file
set oInFile = oFSO.OpenTextFile("expiration.txt", 1)
str_input = ""
' for each line in the input file
do while not oInFile.AtEndOfStream
  ' read the line
  str_input = trim(oInFile.ReadLine())
  Wscript.echo str_input
  ' if date found then exit the loop
     if isDate(str_input) then
        WScript.echo "Date in file found: '" & str_input & "'"
        strNewText = Replace(str_input, left(str_input, 10))    
        Set objFile = oFSO.OpenTextFile("expiration.txt", 2)
        objFile.WriteLine strNewText
        WScript.echo "Date in file found: '" & strNewText & "'"
        exit do
     end if  
loop
' close the input file
oInFile.close
' release object from memory
set oFSO = nothing

How to do resolve this ?


回答1:


Using regular expression

Const ForReading = 1
Const ForWriting = 2
' create object
Set oFSO = CreateObject("Scripting.FileSystemObject")
str_input = ""
' open the input file
Set oInFile = oFSO.OpenTextFile("expiration.txt", 1)
' read the file contents
str_input = oInFile.ReadAll()
' close the input file
oInFile.Close

' use regular expression to find and replace text
Set oRegEx = CreateObject("VBScript.RegExp")
With oRegEx
    .Multiline = True
    .Global = True
    .Pattern = "(\d+)-(\d+)-(\d+)\s(\d+):(\d+);" 'will match entire date including ;
End With
str_input = oRegEx.Replace(str_input, "$1-$2-$3;")

' open the input file to overwrite
Set oInFile = oFSO.OpenTextFile("expiration.txt", 2)
oInFile.Write str_input
' close the input file
oInFile.Close
' release object from memory
set oFSO = nothing


来源:https://stackoverflow.com/questions/60900015/replacing-text-function-value-input-in-txt-file-not-work

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!