|
you got it backwards. The original string does not have underscores in it, but embedded spaces... ----- Original Message ----- From: Buck Calabro <buck.calabro@aptissoftware.com> To: <MIDRANGE-L@midrange.com> Sent: Monday, March 19, 2001 10:12 AM Subject: RE: Web apps on the AS/400 > 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 > +--- +--- | 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-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.