Jump to content

Replace string in file


jdelaney
 Share

Recommended Posts

I'm attempting to replace a string in an XML file, to make the date a past date. I'm able to do so, but there has got to be a better way. XML like:

<ExamTracker>

<Exam TS="20100217091351" DS="DRWEBLAUNCH" Ext="1" ID="05IL66WM"/>

<Exam TS="20100217091352" DS="DRWEBLAUNCH" Ext="1" ID="05IL66WM"/>

<Exam TS="20100217091353" DS="DRWEBLAUNCH" Ext="1" ID="05IL66WM"/>

<Exam TS="20100217091354" DS="DRWEBLAUNCH" Ext="1" ID="05IL66WM"/>

<Exam TS="20100217091355" DS="DRWEBLAUNCH" Ext="1" ID="05IL66WM"/>

<Exam TS="20100217091356" DS="DRWEBLAUNCH" Ext="1" ID="05IL66WM"/>

</ExamTracker>

The TS attribute is the data to change. Any ideas how to loop through and replace them, with say 20100216091351.

Currently, I'm doing a loop to look for TS, getting the date string, doing a replace, deleting the file, then creating with my new, replaced string.

$stest = FileRead ( "C:\DRS\Sys\Data\ExamTracker.xml" )

$iLength = StringLen ( $stest )
$iDateLen = 14
msgbox ( 4096, "FileGetTime", $stest )
For $i = 0 to $iLength
$i = StringInStr ( $stest,"TS",0,1,$i + 1)
If $i > 0 Then
$iStartText = $i + 4
$datetime = StringMid ( $stest, $iStartText, $iDateLen )
$done = StringReplace ( $stest, $datetime, $sNewString )
FileDelete ( "C:\DRS\Sys\Data\ExamTracker.xml" )
FileWrite ( "C:\DRS\Sys\Data\ExamTracker.xml", $done )
Else
ExitLoop
EndIf
Next
IEbyXPATH-Grab IE DOM objects by XPATH IEscriptRecord-Makings of an IE script recorder ExcelFromXML-Create Excel docs without excel installed GetAllWindowControls-Output all control data on a given window.
Link to comment
Share on other sites

Maybe _ReplaceStringInFile might help? Not sure if that is what you're looking for but might be of service.

If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
How to ask questions the smart way!

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.  -  ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.  -  Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.  -  _FileGetProperty - Retrieve the properties of a file  -  SciTE Toolbar - A toolbar demo for use with the SciTE editor  -  GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.  -   Latin Square password generator

Link to comment
Share on other sites

Or a StringRepExp(). Heres a small sample:

$sTest = '<Exam TS="20100217091352" DS="DRWEBLAUNCH" Ext="1" ID="05IL66WM"/>' & @LF & _
         '<Exam TS="20100217091353" DS="DRWEBLAUNCH" Ext="1" ID="05IL66WM"/>'

$sTest = StringRegExpReplace($sTest, 'Exam\h\TS\="(\d+)', 'Exam TS="' & 20100216091351)
MsgBox(0,'', $sTest)
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...