1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- # ord.awk --- do ord and chr
- # Global identifiers:
- # _ord_: numerical values indexed by characters
- # _ord_init: function to initialize _ord_
- #
- # Arnold Robbins, arnold@skeeve.com, Public Domain
- # 16 January, 1992
- # 20 July, 1992, revised
- BEGIN { _ord_init() }
- function _ord_init( low, high, i, t)
- {
- low = sprintf("%c", 7) # BEL is ascii 7
- if (low == "\a") { # regular ascii
- low = 0
- high = 127
- } else if (sprintf("%c", 128 + 7) == "\a") {
- # ascii, mark parity
- low = 128
- high = 255
- } else { # ebcdic(!)
- low = 0
- high = 255
- }
- for (i = low; i <= high; i++) {
- t = sprintf("%c", i)
- _ord_[t] = i
- }
- }
- function ord(str, c)
- {
- # only first character is of interest
- c = substr(str, 1, 1)
- return _ord_[c]
- }
- function chr(c)
- {
- # force c to be numeric by adding 0
- return sprintf("%c", c + 0)
- }
|