|
Here is another way:
Create a file that has one record (don't care about fields) call it x
In an embedded SQL statement:
select hex(:hostvar) from x
This will return the hex rep of the value of the host variable. The
statement "select hex('Hello') from x" returns C885939396
-Walden
-----Original Message-----
From: owner-midrange-l@midrange.com
[mailto:owner-midrange-l@midrange.com]On Behalf Of Simon Coulter
Sent: Thursday, March 26, 1998 3:06 PM
To: MIDRANGE-L@midrange.com
Subject: Re: Hex Values of a Character field
Hello Joe,
Here is a way for non-ILE RPG.
Given the following array definitions (you can change the size of C78 to
handle different size
strings to convert). Note that I am converting each hex digit into a
separate array so I can
show an over/under hexadecimal display. You could easily alter this to
convert the characters
to a side-by-side representation. The basic premise is: since each nybble
(4-bits) is to be
converted to its hex value we need to extract each nybble; since the maximum
value a nybble can
contain is x'F' or decimal 16 we can divide each character by 16 to extract
the most
significant (left-most) nybble and use the remainder for the least
significant (right-most)
nybble.
‚/TITLE SHWFMCR : Show File Member Contents
‚*-------------------------------------------------------------------
‚* A R R A Y D E C L A R A T I O N S
‚*-------------------------------------------------------------------
E C78 78 1 ‚HEX array - IN
E HEX1 78 1 ‚HEX array - OUT
E HEX2 78 1 ‚HEX array - OUT
E HEXDGT 16 16 1 ‚HEX conversion
array
‚/TITLE SHWFMCR : Show File Member Contents
‚*-------------------------------------------------------------------
‚* D A T A S T R U C T U R E D E C L A R A T I O N S
‚*-------------------------------------------------------------------
‚* Miscellaneous declares that need to be binary values
IMISC DS
I B 1 20BIN
I 2 2 CBIN
‚* Copy the data to convert to hex
*
C MOVEADATA,WDW C78 ‚
<--- C EXSR CVTHEX ‚Convert to hex
‚/TITLE SHWFMCR : Show File Member Contents - CVTHEX
‚*** Start of specifications
**********************************************
‚*
*
‚* Subroutine name . . . . . : CVTHEX
*
‚*
*
‚* Descriptive name . . . . : Convert to hexadecimal
*
‚*
*
‚* Function . . . . . . . . : To convert a value to hexadecimal
display *
‚* format.
*
‚*
*
‚* Input . . . . . . . . . . : C78 - Character string
*
‚*
*
‚* Output . . . . . . . . . : HEX1 - Top row of hex characters
*
‚* HEX2 - Bottom row of hex characters
*
‚*
*
‚* Exits-- Normal . . . . . : Return to NSI
*
‚* -- Error . . . . . . :
*
‚*
*
‚*** End of specifications
************************************************
---> CSR CVTHEX BEGSR ‚
‚* ------
C Z-ADD*ZERO BIN ‚
C Z-ADD*ZERO O 50 ‚OUT counter
B1 C 1 DO 78 I ‚IN counter
C MOVE C78,I CBIN ‚Make binary
C BIN DIV 16 HI 30 ‚High order
nybble
C MVR LO 30 ‚Low order
nybble
C ADD 1 HI H ‚Round up for
HEXDGT
C ADD 1 LO ‚Round up for
HEXDGT
C ADD 1 O ‚Increment OUT
counte
C MOVE HEXDGT,HI HEX1,O ‚Convert high
order
C MOVE HEXDGT,LO HEX2,O ‚Convert low
order
E1 C END ‚1 DO 78
‚*
<--- CSR ENDSR ‚CVTHEX
‚*===================================================================
‚* A R R A Y I N I T I A L I S A T I O N
‚*===================================================================
** Hex conversion - HEXDGT - 16-bytes
0123456789ABCDEF
Regards,
Simon Coulter.
//----------------------------------------------------------
// FlyByNight Software AS/400 Technical Specialists
// Phone: +61 3 9419 0175 Mobile: +61 3 0411 091 400
// Fax: +61 3 9419 0175 E-mail: shc@flybynight.com.au
//
// Windoze should not be open at Warp speed.
+---
| This is the Midrange System Mailing List!
| To submit a new message, send your mail to MIDRANGE-L@midrange.com.
| To unsubscribe from this list send email to MIDRANGE-L-UNSUB@midrange.com.
| Questions should be directed to the list owner/operator:
david@midrange.com
+---
+---
| This is the Midrange System Mailing List!
| To submit a new message, send your mail to MIDRANGE-L@midrange.com.
| To unsubscribe from this list send email to MIDRANGE-L-UNSUB@midrange.com.
| Questions should be directed to the list owner/operator: david@midrange.com
+---
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 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.