ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-FONT PIC 9 VALUE 1.
01 WS-BUSC PIC 9 VALUE 4.
01 RESP PIC 9.
01 SV-BUSCADO PIC X(50).
01 rtfWholeWord PIC 9 VALUE 2.
01 rtfMatchCase PIC 9 VALUE 4.
01 rtfNoHighlight PIC 9 VALUE 8.
01 SV-TEXTO PIC X(15000).
PROCEDURE DIVISION.
IF "Caption" OF CmStatic1 = "0"
GO TO SALIDA
END-IF
IF POW-TEXT OF TXT-BUSCAR = SPACES OR
POW-TEXT OF TXT-BUSCAR = "Buscar..."
INVOKE POW-SELF "DisplayMessage"
USING "¡Indique el texto a buscar!" 48
INVOKE TXT-BUSCAR "SetFocus"
ELSE
IF GLB-SELENGTH = ZEROS
MOVE ZEROS TO GLB-SELSTART
END-IF
MOVE POW-FALSE TO "Enabled" OF POW-SELF
MOVE POW-MP-WAIT TO "MousePointer" OF POW-SELF
MOVE POW-TEXT OF TXT-BUSCAR TO SV-BUSCADO
INVOKE OBJ-RTF "GET-Text" RETURNING SV-TEXTO
COMPUTE GLB-SELENGTH = FUNCTION STORED-CHAR-LENGTH(SV-BUSCADO)
INSPECT SV-TEXTO CONVERTING
'abcdefghijklmnopqrstuvwxyzáéíóúàèìòùäëïöü' TO
'ABCDEFGHIJKLMNOPQRSTUVWXYZAEIOUAEIOUAEIOU'
INSPECT SV-BUSCADO CONVERTING
'abcdefghijklmnopqrstuvwxyzáéíóúàèìòùäëïöü' TO
'ABCDEFGHIJKLMNOPQRSTUVWXYZAEIOUAEIOUAEIOU'
PERFORM WITH TEST AFTER UNTIL SV-TEXTO(GLB-SELSTART:GLB-SELENGTH) =
SV-BUSCADO(1:GLB-SELENGTH) OR
(GLB-SELSTART + GLB-SELENGTH) >= 15000
ADD 1 TO GLB-SELSTART
END-PERFORM
MOVE POW-TRUE TO "Enabled" OF POW-SELF
MOVE POW-MP-DEFAULT TO "MousePointer" OF POW-SELF
IF SV-TEXTO(GLB-SELSTART:GLB-SELENGTH) =
SV-BUSCADO(1:GLB-SELENGTH)
MOVE GLB-SELSTART TO "SelStart" OF RichTextBox1
SUBTRACT 1 FROM "SelStart" OF RichTextBox1
MOVE GLB-SELENGTH TO "SelLength" OF RichTextBox1
ELSE
INVOKE POW-SELF "DisplayMessage"
USING "¡No hay más coincidencias!" 64
MOVE ZEROS TO GLB-SELSTART
END-IF
END-IF
INVOKE POW-SELF "ThruEvents"
.
SALIDA.
EXIT.
Marcadores