システム関数 StrLib.getNextToken は、あるトークンをサブストリングの中で検索し、そのトークンをターゲット項目にコピーします。
トークンとは、区切り文字で区切られたストリングのことです。例えば、スペース (「 」) とコンマ (「,」) の文字が区切り文字として定義されている場合、ストリング 「CALL PROGRAM ARG1,ARG2,ARG3」 は、「CALL」、「PROGRAM」、「ARG1」、「ARG2」、および 「ARG3」 という 5 つのトークンに分解できます。
StrLib.getNextToken( target VagText inOut, source VagText in, sourceSubstringIndex INT inOut, sourceSubstringLength INT inOut, characterDelimiter VagText in) returns (result INT)
後述の例に示されているとおり、sourceSubstringIndex および sourceSubstringLength の値をリセットすることなく、 サブストリング内の各トークンを検索する一連の呼び出しが可能です。
Function myFunction() myVar myStructurePart; myRecord ExampleRecordPart; i = 1; myVar.mySourceSubstringIndex = 1; myVar.mySourceSubstringLength = 29; while (myVar.mySourceSubstringLength > 0) myVar.myResult = StrLib.getNextToken( myVar.myTarget[i], "CALL PROGRAM arg1, arg2, arg3", myVar.mySourceSubstringIndex, myVar.mySourceSubstringLength, " ," ); if (myVar.myResult > 0) myRecord.outToken = myVar.myTarget[i]; add myRecord; set myRecord empty; i = i + 1; end end end Record myStructurePart 01 myTarget CHAR(80)[5]; 01 mySource CHAR(80); 01 myResult myBinPart; 01 mySourceSubstringIndex INT; 01 mySourceSubstringLength BIN(9,0); 01 i myBinPart; end Record ExampleRecordPart serialRecord: fileName="Output" end 01 outToken CHAR(80); end
関連概念
EGL 関数の構文図
関連リファレンス
EGL ライブラリー StrLib