|
@@ -2619,45 +2619,17 @@ begin
|
|
Dec(Result);
|
|
Dec(Result);
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
+{$macro on}
|
|
|
|
+{$define INSTRINGREPLACE}
|
|
|
|
+{$define SRString:=String}
|
|
|
|
+{$define SRUpperCase:=AnsiUppercase}
|
|
|
|
|
|
Function StringReplace(const S, OldPattern, NewPattern: string; Flags: TReplaceFlags): string;
|
|
Function StringReplace(const S, OldPattern, NewPattern: string; Flags: TReplaceFlags): string;
|
|
-var
|
|
|
|
- Srch,OldP,RemS: string; // Srch and Oldp can contain uppercase versions of S,OldPattern
|
|
|
|
- P : Integer;
|
|
|
|
-begin
|
|
|
|
- Srch:=S;
|
|
|
|
- OldP:=OldPattern;
|
|
|
|
- if rfIgnoreCase in Flags then
|
|
|
|
- begin
|
|
|
|
- Srch:=AnsiUpperCase(Srch);
|
|
|
|
- OldP:=AnsiUpperCase(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;
|
|
|
|
|
|
+{$i syssr.inc}
|
|
|
|
|
|
|
|
+{$undef INSTRINGREPLACE}
|
|
|
|
+{$undef SRString}
|
|
|
|
+{$undef SRUpperCase}
|
|
|
|
|
|
Function IsDelimiter(const Delimiters, S: string; Index: Integer): Boolean;
|
|
Function IsDelimiter(const Delimiters, S: string; Index: Integer): Boolean;
|
|
|
|
|