EZESTOKN procura o token seguinte em uma cadeia e copia-o em um item.
Tokens são subcadeias separadas por caracteres delimitadores. Por exemplo, dada cadeia 'CALL PROGRAM ARG1,ARG2, ARG3 ' e os caracteres delimitadores espaço (' ') e vírgula (',') os tokens serão 'CALL', 'PROGRAM', 'ARG1', 'ARG2' e 'ARG3 '.
>>-resultado--=---EZESTOKN---(--destino--,---fonte--,-----------> >----índice da subcadeia de origem--,---------------------------> >----comprimento da subcadeia de origem--,----------------------> >----delimitador de caractere--)--;----------------------------><
Atributo | Descrição |
---|---|
resultado
|
Um item de dados numéricos que irá conter o valor do resultado devolvido pela função. É um item binário de quatro bytes. Os seguintes valores são devolvidos:
|
destino
|
Item da cadeia de destino.
|
fonte
|
Item ou literal da cadeia de origem.
|
índice da subcadeia de origem
|
Índice que identifica o byte inicial dentro do item de origem no qual a pesquisa deve começar para os caracteres delimitadores. É um item binário de quatro bytes. Seu valor para o primeiro byte do item de cadeia é 1. Quando a correspondência é encontrada, o valor no índice da subcadeia é
transformado no índice do caractere após o token correspondente.
|
comprimento da subcadeia de origem
|
Tamanho da subcadeia de origem em bytes. É um item binário de quatro bytes. Quando a chamada é bem sucedida, o valor do comprimento da subcadeia de
origem é alterado para o comprimento da subcadeia que permanece, após o token
que foi retornado.
|
delimitador de caractere
|
Item que contém os caracteres delimitadores.
|
Como os valores de índice de origem e comprimento de origem são atualizados a cada chamada bem sucedida, uma seqüência de chamadas pode ser efetuada para recuperar cada um dos tokens em uma subcadeia na ordem em que aparecem sem redefinir o índice de origem e o comprimento da origem antes de cada chamada.
Eis os valores que o código de exceção retorna:
Suportado em todos os ambientes sem considerações de compatibilidade.
ARGLEN = EZESTOKN(TOKEN,INPUT_LINE,NEXT,REMAINING_LEN,' ,'); IF TOKEN = 'CALL'; ARGLEN = EZESTOKN(PROGRAM_NAME,INPUT_LINE,NEXT,REMAINING_LEN,' ,'); ARGCOUNT = 0; WHILE ARGLEN > 0; ARGCOUNT = ARGCOUNT + 1; ARGLEN = EZESTOKN(ARG(ARGCOUNT),INPUT_LINE,NEXT,REMAINING_LEN,' ,'); END; ARGCOUNT = ARGCOUNT - 1; END;