midrange.com code scratchpad
Name:
Using atof() to extract numeric float value
Scriptlanguage:
Plain Text
Tabwidth:
4
Date:
09/12/2012 10:22:46 am
IP:
Logged
Description:
Using atof() to extract numeric float value

By Dennis Lovelady, September, 2012
Code:
  1. H BNDDIR('QC2LE') ActGrp(*New) DftActGrp(*No) Option(*SrcStmt)             
  2.                                                                            
  3. D atof            PR             8F   Extproc('atof')                      
  4. D  string_in                      *   Value Options(*String)               
  5.                                                                            
  6. D showme          PR             8F   ExtProc('showMe')                    
  7. D  keyIn                              Value Like(Key)                      
  8. D  searchMe                     80    Const                                
  9.                                                                            
  10. D myString        C                   'L=19.3000A=19.43M=21.7700LS=19.93AS'
  11. D Key             S             16    Varying                              
  12. D Result          S              8F                                        
  13.                                                                            
  14.  /Free                                                                     
  15.                                                                            
  16.   result = showme('LS': myString) ;                                        
  17.   dsply %Char(result) ;                                                    
  18.   *INLR = *On ;                                                            
  19.   Return ;                                                                 
  20.                                                                            
  21.  /End-free                                                                 
  22.                                                                            
  23. P showme          B                                                        
  24. D showme          PI             8F                  
  25. D  keyIn                              Value Like(key)
  26. D  searchMe                     80    Const          
  27.                                                      
  28. D Pos             S             10I 0                
  29. D wrkKey          S                   Like(key)      
  30. D rtnVal          S                   Like(showme)   
  31.                                                      
  32.  /Free                                               
  33.                                                      
  34.   wrkKey = keyIn + '=' ;                             
  35.   Pos = %Scan(wrkKey: searchMe) ;                    
  36.   If Pos < 1 ;                                       
  37.       rtnVal = -1 ;                                  
  38.   Else ;                                             
  39.      Pos += %Len(keyIn) + 1 ;                        
  40.      rtnval = atof(%Subst(searchMe: Pos)) ;          
  41.   EndIF ;                                            
  42.   Return rtnVal ;                                    
  43.                                                      
  44.  /End-free                                           
  45.                                                      
  46. P showMe          E                                  
© 2004-2019 by midrange.com generated in 0.006s valid xhtml & css