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.