FND

/*                                               2011/2012  MCSERRA  */
/* REXX                                                              */
/*                                             NAO ALTERAR POR FAVOR */
/*
     MACRO EDIT - PESQUISA STRING NA POSICAO DO CURSOR.
                  + SE CURSOR NA PRIMEIRA POSICAO DA STRING: PESQUISA
                    A PRIMEIRA OCORRENCIA DA STRING NO ELEMENTO EM
                    EDICAO.
                  + SE CURSOR NA SEGUNDA METADE DA STRING: PESQUISA
                    A PROXIMA OCORRENCIA DA STRING NO ELEMENTO EM
                    EDICAO.
                  + SE CURSOR NA PRIMEIRA METADE DA STRING, EXCEPTO
                    NA PRIMEIRA POSICAO: PESQUISA A ANTERIOR
                    OCORRENCIA DA STRING NO ELEMENTO EM EDICAO

     TECLA DE FUNCAO RECOMENDADA: PF17  [SHIFT+PF05]
*/
/********************************************************************/
  "ISREDIT MACRO"
/*                                                                  */
     "ISPEXEC CONTROL ERRORS RETURN"
/*--------------------------------------------------------------------*/
     "ISREDIT (ROW,COL) = CURSOR"
     "ISREDIT (LINHA) = LINE " ROW
     "ISREDIT LABEL " ROW " = .XF 0 "
     CND = 0
     DO N = COL TO 1 BY -1  UNTIL CND > 0
        AUX = SUBSTR(LINHA, N , 1)
        MOCHE = 0
        IF AUX = "'" | AUX = " " | AUX = ":" THEN MOCHE = 1
        IF AUX = '"' | AUX = "." | AUX = "(" THEN MOCHE = 1
        IF MOCHE = 1 THEN
        DO
           CND = N + 1
           LINHA = SUBSTR(LINHA, CND)
        END
     END
     VAUX = CND
     NAUX = 73 - CND
     IF CND > 0 THEN CND = 0
     DO N = 1 TO NAUX UNTIL CND > 0
        AUX = SUBSTR(LINHA, N , 1)
        MOCHE = 0
        IF AUX = " " | AUX = "'" | AUX = '"' THEN MOCHE = 1
        IF AUX = "(" | AUX = ")" | AUX = "." THEN MOCHE = 1
        IF AUX = ":"                         THEN MOCHE = 1
        IF MOCHE = 1 THEN
        DO
           CND = N - 1
           LINHA = SUBSTR(LINHA, 1, CND)
        END
     END
     MEM = STRIP(LINHA)
     LMEM = LENGTH(MEM)
     VLA = COL - VAUX
     ZAUX = VAUX + LMEM
     VLB = ZAUX - COL
     IF VLA > VLB THEN
     DO
        ZAUX = ZAUX + 1
        "ISREDIT CURSOR = (ROW,ZAUX)"
        "ISREDIT FIND "MEM" NEXT"
     END
     ELSE
        IF VLA = 0 THEN "ISREDIT FIND "MEM" ALL"
        ELSE
        DO
           VAUX = VAUX - 2
           "ISREDIT CURSOR = (ROW,VAUX)"
           "ISREDIT FIND "MEM" PREV"
        END

exit
/*------------------------------------------------------------------*/
/*                                              2011/2012  MCSERRA  */

Comentários

Mensagens populares deste blogue

CC

ED

Z#SQLCOD