× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



Alternatively, go to library QSYSINC on your i, find source file name MIH, open it and go to the CVTHC member - it will be in the context of C, but I think we have in the FAQ for the list a document on how to convert C specs to RPG. Now when it says SPCPTR - that's a pointer - so you can usually just pass a variable by reference - that's the default. The other way is to pass a pointer by value - with its inherent problems, although maybe not so problematic here - you are calling a system thing that won't hurt you too much!!

HTH
Vern

Charles Wilt wrote:
A better reference is probably the ILE C/C++ for AS/400 MI Reference.
http://publib.boulder.ibm.com/infocenter/iseries/v5r4/topic/books/sc092418.pdf

There, you see the C prototype for cvthc as
void cvthc (_SPCPTR receiver,
_SPCPTRCN source,
int size);

Description
The cvthc function takes each hexadecimal digit (4- bit value) of source and
converts
it to a character digit (8-bit value) and places into receiver.

Parameters
receiver (input/output)
Pointer to an 8-bit character value.
source (input)
Pointer to a 4-bit hexadecimal value.
size (input)
The length in nibbles of the source.

"pointer or PTR" is a clue that character just means 1 byte of memory.

Following the include file chains, you eventually find the following in
QSYSINC/H.POINTER
typedef void *_SPCPTR;
typedef const void *_SPCPTRCN;

void * is the C way of saying a pointer to some unspecified number of bytes
in memory.

HTH,
Charles


On Tue, Jun 16, 2009 at 9:48 AM, Michael Ryan <michaelrtr@xxxxxxxxx> wrote:

Then in this (from Info Center)...

Convert Hex to Character (CVTHC)
Op Code (Hex) Operand 1 Operand 2

1086 Receiver Source

*Operand 1*: Character variable scalar.

*Operand 2*: Character variable scalar.


The variables aren't really char? Do you have a prototype that shows how to
pass an integer to cvthc?

Thanks...

On Tue, Jun 16, 2009 at 9:34 AM, Jon Paris <jon.paris@xxxxxxxxxxxxxx>
wrote:

On 16-Jun-09, at 9:12 AM, rpg400-l-request@xxxxxxxxxxxx wrote:

Hmmm...I'm confused. I have a packed number (or zoned), and I move
it to an
integer field (5U 0). I then take the %Char of the integer
That's where you go wrong. By using %Char you created the character
_representation_ of the value. If you want the hex version of the int
then simply pass the int or do it using a DS or some other form of
redefinition make it available as character without any transform.

Jon Paris

www.Partner400.com
www.SystemiDeveloper.com


--
This is the RPG programming on the IBM i / System i (RPG400-L) mailing
list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.


--
This is the RPG programming on the IBM i / System i (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.



As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

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.