La función de sistema StrLib.getNextToken busca un símbolo en una subserie y copia dicho símbolo en un elemento destino.
Los símbolos son series separadas por caracteres delimitadores. Por ejemplo, si el espacio entre caracteres (" ") y la coma (",") se definen como delimitadores, la serie "CALL PROGRAM ARG1,ARG2,ARG3" puede descomponerse en cinco símbolos "CALL", "PROGRAM", "ARG1", "ARG2" y "ARG3".
StrLib.getNextToken( destino VagText inOut, origen VagText in, índiceSubserieOrigen INT inOut, longitudSubserieOrigen INT inOut, delimitadorCarácter VagText in) returns (resultado INT)
Puede invocar una secuencia de llamadas para recuperar cada símbolo de una subserie sin restablecer los valores para índiceSubserieOrigen y longitudSubserieOrigen, como se muestra más adelante en un ejemplo.
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
Conceptos relacionados
Diagrama de sintaxis para funciones EGL
Consulta relacionada
Biblioteca StrLib de EGL