123456789101112131415161718192021222324252627282930313233343536 |
- var
- Srch,OldP,RemS: SRString; // Srch and Oldp can contain uppercase versions of S,OldPattern
- P : Integer;
- begin
- Srch:=S;
- OldP:=OldPattern;
- if rfIgnoreCase in Flags then
- begin
- Srch:=SRUpperCase(Srch);
- OldP:=SRUpperCase(OldP);
- end;
- RemS:=S;
- Result:='';
- while (Length(Srch)<>0) do
- begin
- P:=AnsiPos(OldP, Srch);
- if P=0 then
- begin
- Result:=Result+RemS;
- Srch:='';
- end
- else
- begin
- Result:=Result+Copy(RemS,1,P-1)+NewPattern;
- P:=P+Length(OldP);
- RemS:=Copy(RemS,P,Length(RemS)-P+1);
- if not (rfReplaceAll in Flags) then
- begin
- Result:=Result+RemS;
- Srch:='';
- end
- else
- Srch:=Copy(Srch,P,Length(Srch)-P+1);
- end;
- end;
- end;
|