|
RPG: Code time: 5 minutes. Run time: 1.5 sec. Same 620 environment as
before. I used a different approach <grin> This works for the empty string
too.
d theString s 50 inz(' this_is_a_test ')
d theResult s 50
d loopLimit s 10u 0 inz(100000)
d timestp s z
c time timestp
c timestp dsply 'BUCK'
c do loopLimit
C ' ':x'fe' xlate theString theResult
C '_':' ' xlate theResult theResult
C x'fe':' ' xlate theResult theResult
c enddo
c time timestp
c timestp dsply 'BUCK'
c eval *InLR=*On
Buck
> -----Original Message-----
> From: Leif Svalgaard
> Sent: Monday, March 19, 2001 10:04 AM
> To: MIDRANGE-L@midrange.com
> Subject: Re: Web apps on the AS/400
>
> From: Leif Svalgaard <leif@leif.org>
> To: <MIDRANGE-L@midrange.com>
> Sent: Monday, March 19, 2001 8:16 AM
> Subject: Re: Web apps on the AS/400
>
>
> > maybe RPG isn't so bad after all :-)
> > Here is another string problem:
> >
> > Given a string char(50), replace all
> > EMBEDDED spaces with hyphens,
> > but leave leading and trailing spaces alone.
> > E.g. " this is a test "
> > should become " this_is_a_test "
> > :
>
> solution in MI:
>
> time to write: 3 min
> time to run (100000 times) 2.4 secs. on 150 box
> code:
>
> DCL DD THE-STRING CHAR(50);
> DCL DD THE-RESULT CHAR(50);
> DCL DD SIZE BIN(2);
> DCL DD START BIN(2);
> DCL DD END BIN(2);
> DCL DD NBR BIN(4);
> CPYBLAP THE-STRING, " THIS IS A TEST ", " ";
> CPYBLAP THE-RESULT, " ", " ";
> CPYNV NBR, 100000;
> AGAIN:
> TRIML END, THE-STRING, " ";
> VERIFY START, THE-STRING, " ";
> SUBN SIZE, END, START;
> ADDN(S) SIZE, 1;
> XLATE THE-RESULT(START:SIZE),THE-STRING(START:SIZE)," ","_";
> SUBN(SB) NBR, 1/POS(AGAIN);
>
> RTX *;
>
> one little complication (that you are allowed to ignore too) is
> if the string is empty, then the above code fails, but let's
> change the specs to say that you only invoke the code if
> you know that the string is not empty.
+---
| This is the Midrange System Mailing List!
| To submit a new message, send your mail to MIDRANGE-L@midrange.com.
| To subscribe to this list send email to MIDRANGE-L-SUB@midrange.com.
| To unsubscribe from this list send email to MIDRANGE-L-UNSUB@midrange.com.
| Questions should be directed to the list owner/operator: david@midrange.com
+---
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 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.