|
Jay,
See also the MI instructions:
EDIT LBEDIT EDITPD
HTH,
Mark S. Waterbury
On Friday, February 28, 2020, 12:43:18 PM EST, Jay Vaughn <
jeffersonvaughn@xxxxxxxxx> wrote:
Tim it is indeed... as long as no sql is used in it.
I would very much appreciate it.
Jay
On Fri, Feb 28, 2020 at 12:41 PM Tim Fathers <X700-IX2J@xxxxxxxxxxx>
wrote:
If I understand the problem correctly, you can use the MI function"cpynv"
to extract an arbitrary numeric field from it's binary form (as youmight
find in a trigger buffer, for example) to a string. It can be prototypedJay
as a built-in function and used directly from RPG, the only fiddly bit is
creating the to and from descriptors the function needs.
I have an example somewhere I could dig out if it's what you're after.
Tim.
________________________________
From: MIDRANGE-L <midrange-l-bounces@xxxxxxxxxxxxxxxxxx> on behalf of
Vaughn <jeffersonvaughn@xxxxxxxxx>now
Sent: 28 February 2020 18:21
To: Midrange Systems Technical Discussion <midrange-l@xxxxxxxxxxxxxxxxxx
Subject: Re: parse a negative number out of a before image string
I hate to beat a dead horse with this topic but never really found a
solution using only RPG... my solution was derived from using SQL, but
I need an RPG solution only.wrote:
So running with Barbara's suggestion...
challenge - extract for a number of bytes, the length of a packed decimal
value (may contain decimals)
objective - convert that clear text value
In my pgm i have the below declaration...
d ds_cvtNumeric ds qualified
d charRep 31
d numRep 31 10 overlay(charRep)
d g_zeros s like(ds_cvtNumeric.charRep)
d inz(*all'0')
my string value that contains the packed value is 5 bytes long
(decimal(9.2)... and obviously in debug it is the reverse image
representation (non clear text).
in debug...
evalr ds_cvtNumeric.charRep = g_zeros +
%trim(%subst(srcString
:1
:i_numOfBytes)); = 5
o_clearTextValue = %char(ds_cvtNumeric.numRep);
this ends up with a data decimal error...
the debug eval shows...
EVAL ds_cvtnumeric
DS_CVTNUMERIC.NUMREP = 000000000000000000000.00000
DS_CVTNUMERIC.CHARREP = '00000000000000000000000000 '
I would really like to put this one to bed.
Any assistance is greatly appreciated.
Jay
On Wed, Oct 30, 2019 at 3:10 PM Barbara Morris <bmorris@xxxxxxxxxx>
create a
On 2019-10-30 11:51 a.m.,10/30/2019
dlclark@xxxxxxxxxxxxxxxx wrote:
"MIDRANGE-L" <midrange-l-bounces@xxxxxxxxxxxxxxxxxx> wrote on
11:46:31 AM:
You - what Dave says.
You could make the routine more generic if you needed it but this is
the simple way to map a single field.
Yes, for example (to make it more generic), you could
zoned15-character field and overlay it with a 15-digit (zero decimal)
dividethefield. Then, move zeroes to the zoned field before right justifying
character data into the character field. Then, you just have to
https://eur05.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.midrange.com%2Fmailman%2Flistinfo%2Fmidrange-l&data=02%7C01%7C%7Cd1b5ec11087e42fb242408d7bc72c037%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637185073336818805&sdata=BVX3Tki4GQEYDH%2FSb0UU62aJ376QpIE4mu9ZWvNHWR8%3D&reserved=0ofthe resulting zoned decimal number (into another field) by the number
listdesired decimal places that you got from SYSCOLUMNS.
To get the leading zeros and right-justify the character value in one
go, use EVALR with a character variable initialized to zeros.
dcl-ds cvtzoned qualified;
c char(15);
n zoned(15) overlay(c);
end-ds;
dcl-s zeros like(cvtzoned.c) inz(*all'0');
evalr cvtzoned.c = zeros + '1234N';
dsply (%char(cvtzoned.n));
--
Barbara
--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing
To post a message email: MIDRANGE-L@xxxxxxxxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit:
https://eur05.safelinks.protection.outlook.com/?url=https%3A%2F%2Farchive.midrange.com%2Fmidrange-l&data=02%7C01%7C%7Cd1b5ec11087e42fb242408d7bc72c037%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637185073336818805&sdata=8IL5sedLTQgAcKrLky0OPvj9yZcUP01HKXDYzgFv%2BpM%3D&reserved=0or email: MIDRANGE-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives
at
.https://eur05.safelinks.protection.outlook.com/?url=https%3A%2F%2Famazon.midrange.com&data=02%7C01%7C%7Cd1b5ec11087e42fb242408d7bc72c037%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637185073336818805&sdata=6EFLq3LUN5xG%2Fr27yKEIDJEyZPBtEdIqO1F9BgDObIw%3D&reserved=0
Please contact support@xxxxxxxxxxxx for any subscription related
questions.
Help support midrange.com by shopping at amazon.com with our affiliate
link:
list--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing
To post a message email: MIDRANGE-L@xxxxxxxxxxxxxxxxxxhttps://eur05.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.midrange.com%2Fmailman%2Flistinfo%2Fmidrange-l&data=02%7C01%7C%7Cd1b5ec11087e42fb242408d7bc72c037%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637185073336818805&sdata=BVX3Tki4GQEYDH%2FSb0UU62aJ376QpIE4mu9ZWvNHWR8%3D&reserved=0
To subscribe, unsubscribe, or change list options,
visit:
or email: MIDRANGE-L-request@xxxxxxxxxxxxxxxxxxhttps://eur05.safelinks.protection.outlook.com/?url=https%3A%2F%2Farchive.midrange.com%2Fmidrange-l&data=02%7C01%7C%7Cd1b5ec11087e42fb242408d7bc72c037%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637185073336818805&sdata=8IL5sedLTQgAcKrLky0OPvj9yZcUP01HKXDYzgFv%2BpM%3D&reserved=0
Before posting, please take a moment to review the archives
at
.https://eur05.safelinks.protection.outlook.com/?url=https%3A%2F%2Famazon.midrange.com&data=02%7C01%7C%7Cd1b5ec11087e42fb242408d7bc72c037%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637185073336818805&sdata=6EFLq3LUN5xG%2Fr27yKEIDJEyZPBtEdIqO1F9BgDObIw%3D&reserved=0
Please contact support@xxxxxxxxxxxx for any subscription related
questions.
Help support midrange.com by shopping at amazon.com with our affiliate
link:
--list
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing
To post a message email: MIDRANGE-L@xxxxxxxxxxxxxxxxxx--
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://archive.midrange.com/midrange-l.
Please contact support@xxxxxxxxxxxx for any subscription related
questions.
Help support midrange.com by shopping at amazon.com with our affiliate
link: https://amazon.midrange.com
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing list
To post a message email: MIDRANGE-L@xxxxxxxxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://archive.midrange.com/midrange-l.
Please contact support@xxxxxxxxxxxx for any subscription related
questions.
Help support midrange.com by shopping at amazon.com with our affiliate
link: https://amazon.midrange.com
--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing list
To post a message email: MIDRANGE-L@xxxxxxxxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://archive.midrange.com/midrange-l.
Please contact support@xxxxxxxxxxxx for any subscription related
questions.
Help support midrange.com by shopping at amazon.com with our affiliate
link: https://amazon.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.