Network Automation Software We are currently migrating this forum
over to our HelpSystems domain. Please
post all new threads in our new
HelpSystems Community Portal.
Post to the HelpSystems Forum
You are not currently logged on. You must be logged on in order to post. Log on
Or Create a new account
AutoMate Discussion
Decrease font size
Increase font size
Topic Title: "Replace Text" using 'Enhanced' Regex replaces match with query
Topic Summary: "Replace Text" using 'Enhanced' Regex puts *condition* string instead of replacement string
Created On: 09/13/2012 10:12 AM
Status: Read Only
Linear : Threading : Single : Branch
Search Topic Search Topic
Topic Tools Topic Tools
View similar topics View similar topics
View topic in raw text format. Print this topic.
 09/13/2012 10:12 AM
User is offline View Users Profile Print this message

Author Icon
DLJNA
Apprentice (20-49)

Posts: 29
Joined: 11/17/2005

I'm sure this is something daft I've overlooked, and hope someone sees this and can suggest a simple correction. I'm not the sharpest RegEx tool in the drawer.

I'm parsing an XML file, and need to cleanse an attribute. At the point I use the Replace function, I have already created the properly cleansed string, but each occurrence has a different length and values. There are about 300,000 of them.


(Note that I forgot the forum formatting would rip all the meaningful characters out of the XML string, so I've attached it in a tiny screenshot file)

I realize I could use a different technique and find the unique text sequence and then back through the string from there until I found the preceding vbCrLf, then look forward until I found the subsequent vbCrLf, and then use the byte index values for each to concatenate the head, cleansed string, and tail together. But I'd love it if I could so it this way.

Fingers crossed!
6.2.6.0 on Windows 7 or W2K8R2

 Category Survey


Click for full image
Click for larger image



Edited: 09/13/2012 at 10:24 AM by DLJNA
 09/13/2012 12:07 PM
User is offline View Users Profile Print this message

Author Icon
DLJNA
Apprentice (20-49)

Posts: 29
Joined: 11/17/2005

Not solved, but worked around.

I fell back to my normal approach for this scenario:

    Create a couple extra variables to hold text, and create a couiple more variables still to hold numbers (byte index values)

    Read the whole buffer (text file) into the normal variable (%ScratchBuffer%).

    I'm still finding the RegEx string exactly as above, and populating the result into %ScratchBufferHeadEndIndex%

    Get text from %ScratchBuffer%, starting at position 1 and continuing for %ScratchBufferHeadEndIndex% bytes and populate %GoodXMLhead%

    Assign a temporary text variable called %ScratchBufferTempValue% with Mid(%ScratchBuffer, starting at %ScratchBufferHeadEndIndex% bytes)

    Find the first occurrence of %vbCrLf% in this truncated temporary text variable, and populate %ScratchBufferTailStartIndex% with it.

    Populate %GoodXMLtail% with Mid(%ScratchBufferTempValue%, starting at byte %ScratchBufferTailStartIndex%)

    Clear any values to %ScratchBufferTempValue%

    Insert the text %CleansedAttribute% at the end of %GoodXMLhead% and populate it to %ScratchBufferTempValue%

    Insert the text %GoodXMLtail% at the end of %ScratchBufferTempValue% and populate it to whatever normal variable destination it previously had.


I know you can use Insert to populate the same variable being Inserted into, and I know you can sometimes concatenate several fields together in a single line, but with version 6.x I always found it a little inconsistent, so took the long route.

If anyone still knows the answer, I'd still appreciate it, to learn for future use. I just thought I'd post this in case someone else got stuck with the same issue.

Also, just hammered this out. Apologies up front for any messiness.

 Category Survey
 09/13/2012 12:14 PM
User is offline View Users Profile Print this message

Author Icon
JeanDelfosse
Supreme Guru (1000+)

Posts: 8883
Joined: 03/30/2005

I confirm the issue

 Category Survey
AutoMate 6 version:
Windows version:



Task Steps: (Right click, Select All, Copy to copy to the clipboard. Steps can then be pasted into the AutoMate Task Builder)


-------------------------
Jean Delfosse - Automate Beta Tester
Win7 Pro 64 bits -Win XP Pro SP3 32 bits - AM8, AM7, BPA10, BPA9, BPA8, BPA7, AM6 Enterprise, AM4
Statistics
18258 users are registered to the AutoMate Discussion forum.
There are currently 0 users logged in.
The most users ever online was 6686 on 11/01/2020 at 01:24 AM.
There are currently 1527 guests browsing this forum, which makes a total of 1527 users using this forum.

FuseTalk Enterprise Edition v4.0 - © 1999-2020 FuseTalk Inc. All rights reserved.

Sitemap Network Automation Software Blog