![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Дайте исходник AnsiReplaceStr из 7 дельфей.
MegaVolt © (2004-08-02 12:43:00)Для работы проги в 5 дельфи нужна функция AnsiReplaceStr подкиньте исходник если не сложно.
Заранее благодарен :)
MegaVolt (2004-08-03 08:51:00) [1]А что это за зверь? Где взять?
R (2004-08-03 04:14:00) [2]А в QString функция замены работает быстрее-намного быстрее.
MegaVolt (2004-08-02 14:37:00) [3]Точно есть :) Я стормозил :(
Может еще дадите исходники posex и midstr??
MicroVolt (2004-08-02 14:03:00) [4]StringReplace - эта функция в Delphi 5 есть, читай справку:))
type
TReplaceFlags = set of (rfReplaceAll, rfIgnoreCase);
function StringReplace(const S, OldPattern, NewPattern: string; Flags: TReplaceFlags): string;
MegaVolt (2004-08-02 13:26:00) [5]А как описан тип TReplaceFlags?
MegaVolt (2004-08-02 13:24:00) [6]Большущее спасибо :)
GuAV (2004-08-02 13:23:00) [7]strutils.pas:
function AnsiReplaceStr(const AText, AFromText, AToText: string): string;
begin
Result := StringReplace(AText, AFromText, AToText, [rfReplaceAll]);
end;
sysutils.pas:
function StringReplace(const S, OldPattern, NewPattern: string;
Flags: TReplaceFlags): string;
var
SearchStr, Patt, NewStr: string;
Offset: Integer;
begin
if rfIgnoreCase in Flags then
begin
SearchStr := AnsiUpperCase(S);
Patt := AnsiUpperCase(OldPattern);
end else
begin
SearchStr := S;
Patt := OldPattern;
end;
NewStr := S;
Result := '';
while SearchStr <> '' do
begin
Offset := AnsiPos(Patt, SearchStr);
if Offset = 0 then
begin
Result := Result + NewStr;
Break;
end;
Result := Result + Copy(NewStr, 1, Offset - 1) + NewPattern;
NewStr := Copy(NewStr, Offset + Length(OldPattern), MaxInt);
if not (rfReplaceAll in Flags) then
begin
Result := Result + NewStr;
Break;
end;
SearchStr := Copy(SearchStr, Offset + Length(Patt), MaxInt);
end;
end;
[D7]