×

Good News Everybody!

The new search engine is LIVE!

Please report any problems to david (at) midrange.com.




Scott Klement already wrote one of these tools, if you would like to not reinvent this wheel.
http://archive.midrange.com/rpg400-l/200408/msg00372.html



Thanks, Matt


-----Original Message-----
From: RPG400-L [mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of tim
Sent: Thursday, September 15, 2016 9:21 AM
To: RPG programming on the IBM i (AS/400 and iSeries) <rpg400-l@xxxxxxxxxxxx>
Subject: pointer question

Im having issues with my first attemp with pointers. I have a service program that uses strtok to split info into array elements. When i try using it, the subsequent invocations replace prior ones with the latest data. It looks like its pointing to the same memory location.

here is my code. i think i need to do something in my service program so that the pointer is unique for each call to the service.

service program:

hnomain

P WordSplitterd b export
d WordSplitterd pi *
d string 65535 const
d delim 1 const

D tokens s 1024A varying dim(2000)
D x s 10I 0
D string2 s 65535
d pointer s *

dstrtok PR * ExtProc('strtok')
d string * value options(*string)
d delim * Value Options(*string)

/free

string2 = string;
pointer = strtok(string2 : delim);

dow (pointer <> *null);
x+=1;
tokens(x) = %trim(%str(pointer));
pointer = strtok(*null: delim);
enddo;

return %addr(tokens);

/end-free

P E

Access program

H DFTACTGRP(*NO) BNDDIR('HTTPAPI':'QC2LE':'PGM')
d pointer1 s *
d MbrInfo1 s 1024 based(pointer1) varying dim(2000)
d pointer2 s *
d MbrInfo2 s 1024 based(pointer2) varying dim(2000)

/free
pointer1 = wordsplitterd('1,2,3':',');
pointer2 = wordsplitterd('4;5;6':';');
*inlr = *on;
/end-free

--
This is the RPG programming on the IBM i (AS/400 and iSeries) (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.

Please contact support@xxxxxxxxxxxx for any subscription related questions.

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-2026 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.