|
Jim, Sorry, as far as I know there are no such functions available to VARPG. There maybe a WIN32 API you could use, but I don't know what it would be. Below is the code I have always used to convert a character field to a numeric. It is early RPG IV, so it should work with VARPG. -- Scott P. Johnson * Convert Character to Number D $CvtChrNbr PR 30 9 D StrIn 32 CONST *===============================================================* * Convert Character to Number Sub-Procedure * *---------------------------------------------------------------* P $CvtChrNbr B D $CvtChrNbr PI 30 9 D StrIn 32 CONST D CurChar s 1 D DecOut s 30 9 D Left s 21 D Right s 9 D Side s 5 D Sign s 1 0 D X s 3 0 * Set inital values C Eval left = *all'0' C Eval right = *blanks C Eval Side = 'left' C Eval Sign = 1 * Extract parts of number to left & right of decimal point C 1 Do 32 x C Eval CurChar = %subst(StrIn:x:1) C Select C When CurChar >= '0' and CurChar <= '9' C If Side = 'left' C Eval Left = %subst(Left:2:20) + CurChar C Else C Eval Right = %trimr(Right) + CurChar C EndIf C When CurChar = '.' C Eval Side = 'right' C When CurChar = '-' or CurChar = '<' C Eval Sign = -1 C EndSl C EndDo * Combine the left & right strings to get the entire number C MoveL Left DecOut C Eval Right = %trimr(Right) + '000000000' C Move Right DecOut * If a hyphen or less-than was found, negate the number C If Sign = -1 C Eval DecOut = (- DecOut) C EndIf C C Return DecOut P $CvtChrNbr E I have a, seemingly, fairly simple problem, convert an alpha field to numeric. My Alpha Field comes out like '89 ' I need to convert this to numeric, atoi or even atof would be the way to do it, and would be the solution on the AS/400. Do we have QCTOLE in VARPG? It looks like I'm going to have to write some complex numeric parser to do this since it's left justified and I don't seem to have atoi in VA-RPG. When in the heck is IBM going to write a simple %Val or %Value BIF so we don't have this problem? Regards, Jim Langston
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.