I assume that you know what all of the 'xx=' values are (M=, L=, LS=, etc.).
I assume that the numeric value is directly after the '=' and there are no leading blanks.
Do a scan of the string for the 'xx=' value.
Set your start position at the 'xx=' value + 3 (3 corresponding to the length of the value you searched with)
From this point in the array do another lookup for values < '0' and greater then '.'.
Subtract 1 from this position - this is your end position.
Set a workfield as substring of your initial string based on the start and end positions
Run sql cast statement:
Select cast (:workfield as decimal(9,2)) into :newfield from sysibm/sysdummy1;
Paul Therrien
Orion South, Inc.
504-374-9551
800-437-7173; Ext. 551
ptherrien@xxxxxxxxxxxxxxx
-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Jeff Crosby
Sent: Tuesday, September 11, 2012 11:56 AM
To: RPG programming on the IBM i / System i
Subject: Extract some numeric fields from a string
Given a 60 character string that looks like this (and there will be trailing blanks):
L=19.3000A=19.43M=21.7700LS=19.93AS=19.93CB=19.1600
How would I extract the numeric data behind one of these character interludes into a decimal field?
For example, one time I may want to know what's behind the "M=", another time what's behind the "AS=", etc.
Wanting to know what's behind the "M=" means I want the value (in this
instance) of 21.7700 put into a decimal field.
Wanting to know what's behind the "AS=" means I want the value (in this
instance) of 19.93 put into a decimal field.
At one time or another I will want to know any one of the 6 "fields" in that string. The fields are optional in the string, ie, the "CB=" may not be there, in which case I want that field to default to 0.
V7R1. I have the SQL Development Kit if there is some slick way with SQL to get one or all of these fields out of the string in one fell swoop.
--
Jeff Crosby
VP Information Systems
UniPro FoodService/Dilgard
P.O. Box 13369
Ft. Wayne, IN 46868-3369
260-422-7531
www.dilgardfoods.com
The opinions expressed are my own and not necessarily the opinion of my company. Unless I say so.
--
This is the RPG programming on the IBM i / System i (RPG400-L) mailing list To post a message email: RPG400-L@xxxxxxxxxxxx To subscribe, unsubscribe, or change list options,
visit:
http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives at
http://archive.midrange.com/rpg400-l.
As an Amazon Associate we earn from qualifying purchases.