× 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.



Pushing this too far into a generic problem goes far beyond the intent of my original question - that was for something that does NOT involve any kind of calculations - a place where a 6-digit number is used for something like an employee code.

That kind of thing would not ever be negative, so losing a sign is not an issue.

This goes to Jon's suggestion - purpose-driven procedures. These could distinguish between the several scenarios.

The generic handling may never be done well - there is a multitude of things that the MOV* family was used for - I just checked - if a character value is moved to numeric, the zone portion of the right-most character is always used to set the sign.

Vern

On 12/11/2013 3:51 PM, Buck Calabro wrote:
On 12/11/2013 4:06 PM, Booth Martin wrote:
I still do not understand why either mult by .01 or div by 100, with a
"// extract the most significant 4 digits" comment, is not the easiest
and clearest solution? That keeps the sign, and does all the things
needed.

Question: with the DS solution is the sign lost?

(A long time ago the idea was to use mult instead of div where ever
possible to avoid overlays.)
Make this a generic problem and perhaps we can begin to see the outlines
of why different people advocate different approaches. Posit a product
code 555-12-34-56 such that
555 is the brand Frito-Lays
12 is the size 64 ounce
34 is the flavour Ranch
56 is the packaging Retail cello, 24 in a case

If you need to extract out all of these subfields from the product code,
would you immediately think of doing math, or would a DS spring to mind?

Posit a dollar amount 555566 such that 5555 is whole dollars and 66 is
cents. We need to keep track of whole dollars. Would a DS spring to
mind, or math? The sign is very likely important.

Posit a accounting code 55-12-3456 such that
55 is the company code
12 is the major GL code
3456 is the minor GL code

We want to keep statistics by major GL code across companies. Would I
use math to isolate the GL code? Sign is unimportant.

The decision tree that one uses bears heavily on the suggested solution.
The issue with looking at MOVEL in old code is that we are probably not
privy to the decision tree that lead to its use, and thus need to
re-think the business problem in order to work up a decision tree for
the current solution.

There is no generic replacement for MOVE; there are general classes of
MOVE problems, and there is considerable overlap in the replacement
solution space.

--buck

On 12/11/2013 1:44 PM, Scott Klement wrote:
Chuck,

You're right that %EDITC(num6:'X') will be different from MOVEL if there
are decimal places or if there's a negative value. But this seems
extremely unlikely in the case of an ID field, and the OP's example did
not have decimal places.

However, %CHAR(num6) will strip leading zeros and blanks.

So while it's technically possible for %EDITC to be incorrect, it's
extremely unlikely for this particular scenario. %CHAR, on the other
hand, will almost certainly be wrong.

-SK


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

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.