Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Дайте исходник 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]


Наверх

Титульная страница Поиск, карта сайта Написать письмо