[r45]: / trunk / library / XmlControl / FB_StringBuffer / FindBack / svnobj  Maximize  Restore  History

Download this file

26 lines (25 with data), 2.8 kB

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
METHOD FindBack : UDINT
VAR_INPUT
    sSearchString : T_MaxString;
END_VAR
VAR
    udiLoop : UDINT;
    udiSearch : UDINT;
    pBuffer : POINTER TO BYTE;
udiLoop := 0;
udiSearch := 0;
pBuffer := pStrBuf + udiLength;
pSearch := ADR(sSearchString);
WHILE(pSearch^ <> 0 ) AND udiLoop < udiLength DO
    IF pBuffer^ <> pSearch^ THEN
        udiLoop := udiLoop + 1;
        pBuffer := pStrBuf + udiLength - udiLoop;
        pSearch := ADR( sSearchString);
        udiSearch := 0;
    ELSE
        udiSearch := udiSearch + 1;
        pBuffer := pStrBuf + udiLength - udiLoop + udiSearch;
        pSearch := ADR( sSearchString ) + udiSearch;
    END_IF;
END_WHILE;
FindBack :=  udiLength - udiLoop + 1;