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

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

AnsiReplaceText несколько раз и разные замены - как?


WebSQLNeederr ©   (2008-05-19 10:16:00) 

У меня есть в тексте несколько урывков текста, которые AnsiReplaceText-ом нужно заменить на разные значения, я делаю так но у меня замена одна и та же:

html.Text:=AnsiReplaceText(html.Text,'{ONE_LINK}',one_link);

Функция оне_линк:

function one_link:string;
var s:string;i:integer;
begin
 i:=Random(Unit1.key.Count);
 s:='<a href="'+Unit1.link.Strings[i]+'">'+Unit1.key.Strings[i]+'</a>';
 one_link:=s;
end;

Как сделать что бы когда я в тексте вставляю несколько раз макрос {ONE_LINK} то создавало бы разные подстановки ??


WebSQLNeederr   (2008-05-19 10:49:00) [1]

Пришлось так сделать, может есть проще вариант?

while pos('{ONE_LINK}',html.text)<>0 do
begin
 html.Text:=StringReplace(html.Text,'{ONE_LINK}',one_link,[]);
end;


Рамиль   (2008-05-19 10:49:00) [2]


> Религия не позволяет? Я бы с помошью while, pos, copy и
> «какой-то матери» все бы и сделал

И кстати это работает гораздо быстрее, чем xxxReplacexxx


ЮЮ   (2008-05-19 10:46:00) [3]

> Надеюсь не через pos проверять количество нужно …


Религия не позволяет? Я бы с помошью while, pos, copy и «какой-то матери» все бы и сделал, безо всяких xxxReplacexxx


WebSQLNeederr   (2008-05-19 10:41:00) [4]

сделал html.Text:=StringReplace(html.Text,'{ONE_LINK}',one_link,[]);

НО, теперь заменяет только одну ссылку и все :( А как найти сколько всего, это что через цикл нужно делать?

Надеюсь не через pos проверять количество нужно ...


Anatoly Podgoretsky   (2008-05-19 10:32:00) [5]

> WebSQLNeederr  (19.05.2008 10:29:03)  [3]

Ну зачем же пишешь rfReplaceAll если тебе нужны уникальные ссылки


WebSQLNeederr   (2008-05-19 10:31:00) [6]

все, разобрался, так надо [rfReplaceAll]


WebSQLNeederr   (2008-05-19 10:29:00) [7]

попробовал rfReplaceAll но пишет ошибку [Error] Unit2.pas(218): Incompatible types: 'TReplaceFlags' and 'Enumeration'


WebSQLNeederr   (2008-05-19 10:23:00) [8]

спасибо, а чему Flag олжен быть равен?


Anatoly Podgoretsky   (2008-05-19 10:21:00) [9]

StringReplace


Наверх

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