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
Enviar um comentário