× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



I've done this in both RPG and Java. I use </tag1/> for the format. My
code for parsing it looks like this:

C                   If        MsgBody(MsgIdx) <> CurSection

C                   eval      cmdStart=%scan('</':MsgBody(MsgIdx))

 

C                   If        cmdStart=0

 * spit out raw text
C                   Else

C                   eval      WorkLine=MsgBody(MsgIdx)

 

C                   DoW       cmdStart>0

C                   eval      cmdEnd=%scan('/>':WorkLine)

C                   eval      FieldName=%subst(WorkLine:cmdStart:

C                                                    (cmdEnd -
cmdStart)+2)
 * do stuff based on Field Name
C                   eval      cmdStart=%scan('</':WorkLine)
C                   EndDo                                  

This is an example from the program I wrote to send order status emails.
The program reads several different source members into a couple of
arrays and copies them into the MsgBody array based on the email type I
need to send. I also have an example that works from the IFS but the
only significant difference (besides being written in free format RPG)
is it uses the IFS open and read API's instead of an array.

I also have section names in my templates for optional sections. I use
the format </@section name/> to identify those. In this case, I require
the section name to be on it's own line and start in the first character
position (I did this purely to make it easier on myself, it's good to be
the king).

Matt

-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx
[mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of James Rich
Sent: Wednesday, December 13, 2006 5:12 PM
To: rpg400-l
Subject: matching tags in text

I've written some code which has some bugs.  I think I need to scrap the

whole thing and start over with a fresh approach.  I need to replace
tags 
in a string with another string.  So I'm looking for ideas on the best 
ways to accomplish this.  Here's an example of what the original string 
might look like:

This string is <tag 1>an example string</tag 1> that I made up.

My code needs to replace <tag 1> with some string (passed to it is 
beginstring) and replace </tag 1> with some string (passed as
endstring). 
I need to catch errors like opening tags that don't have closing tags
and
opening tags that occur before a previous opening tag's matching end
tag. 
I'm almost certain this is something that lots of RPG programmers have 
done before.  My code sucks.  How do you do it?

James Rich

It's not the software that's free; it's you.
        - billyskank on Groklaw

As an Amazon Associate we earn from qualifying purchases.

This thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.