Posted: Mon Feb 25, 2008 1:04 pm Post subject: Create simple ASCII List
Code:
report zexp_ascii no standard page heading.title
**********************************************************
* Show ASCII Codes
*
* This is freeware. Please read the terms of use.
* Written by Urs Rohner, Rohner IT Consulting & Engineering
*
* Contact Author: Urs Rohner
*
*
*
*
*
* comments
* This is a classic report: show a list containing the ordinals
* of all characters (actually the current SAP codepage will be shown).
*
*
*
* history
* Vers Date Own Remark
* ---- ------------------ --- ----------------------------------
* 1.00 6th July 2000 rnr Initial version
* 1.10 18th April 2001 rnr Added xml tags, add selection text
* 1.20 rnr Changed for 4.6C compliance
* 1.21 30th May 2001 rnr Added comments
* 1.30 11th June 2001 rnr Binary representation
*
**********************************************************
parameters:
_base type i default 2,
_text(128) type c lower case.
field-symbols:
<c>, <x>.
data:
_b(8) type c, " bit pattern
_i type i, " ordinal value
_c type c, " character representation
_x type x. " hexadecimal
* Main ( )
start-of-selection.
assign _c to <c> type 'X'.
assign _x to <x> type 'X'.
do 256 times.
<c> = <x> = _i = sy-index - 1.
perform m_dec2base using _i _base _b.
if _text is initial or _text ca _c.
write: / _i, 20 _b, 40 '%' no-gap, _x, 50 _c.
endif.
enddo.
* Method: m_dec2base>
* Convert an interger to a string number with base _b
form m_dec2base using
value(_n) type i
value(_b) type i
_s.
field-symbols:
<d>. " digit in _s
data:
d_ type i,
p_ type i,
q_ type i,
r_ type i, " required length of _s
s_ type c, " sign of _n
t_ type c, " type of _s
l_ type i. " length of _s
" prepare sign
if _n ge 0.
clear s_.
else.
_n = abs( _n ).
s_ = '-'.
endif.
" check for requested base
if _b gt 1.
" check whether target string is okay
describe field _s type t_ length l_.
if t_ eq 'C'.
" calculate number of required digits r_
if _n ne 0.
r_ = ceil( log( _n + 1 ) / log( _b ) ).
else.
r_ = 1.
endif.
if l_ ge r_.
do r_ times.
p_ = sy-index - 1.
q_ = _b ** ( r_ - sy-index ).
assign _s+p_(1) to <d>.
d_ = _n div q_.
_n = _n - ( d_ * q_ ).
perform m_dec2dig using d_ <d>.
enddo.
else.
clear _s. " length of _s is too short
endif.
else.
clear _s. " _s must be of character type
endif.
else.
clear _s. " _b must be at least 2
endif.
endform.
form m_dec2dig using
value(_d) type i
_i type c.
case _d.
when 0. _i = '0'.
when 1. _i = '1'.
when 2. _i = '2'.
when 3. _i = '3'.
when 4. _i = '4'.
when 5. _i = '5'.
when 6. _i = '6'.
when 7. _i = '7'.
when 8. _i = '8'.
when 9. _i = '9'.
when 10. _i = 'A'.
when 11. _i = 'B'.
when 12. _i = 'C'.
when 13. _i = 'D'.
when 14. _i = 'E'.
when 15. _i = 'F'.
endcase.
endform.
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum
All product names are trademarks of their respective companies. SAPNET.RU websites are in no way affiliated with SAP AG. SAP, SAP R/3, R/3 software, mySAP, ABAP, BAPI, xApps, SAP NetWeaver and any other are registered trademarks of SAP AG. Every effort is made to ensure content integrity. Use information on this site at your own risk.