Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.03.2011, 17:59   #1
Aleksandr69
Пользователь
 
Регистрация: 11.12.2010
Сообщений: 71
По умолчанию Memo HTML

Подскажите как сделать? вставляю код html в мемо проставляю теги типа <key>(можно так сделать [key] для уникальности) ,нажимаю бутон и в зависимости от тега в мемо проставляются описание ключи и ттд ,неужто это все делать с помощью pos,copy,delete.




Последний раз редактировалось Aleksandr69; 21.03.2011 в 18:12.
Aleksandr69 вне форума Ответить с цитированием
Старый 21.03.2011, 18:05   #2
MyLastHit
Очень суровый
Участник клуба
 
Аватар для MyLastHit
 
Регистрация: 17.12.2009
Сообщений: 1,988
По умолчанию

Напиши по русски, и прежде чем отправлять - сам прочитай что получилось. Вообще не понял, что ты хочешь сделать.
Ненавижу быть как все, но люблю, чтобы все были как я.
MyLastHit вне форума Ответить с цитированием
Старый 21.03.2011, 18:10   #3
Aleksandr69
Пользователь
 
Регистрация: 11.12.2010
Сообщений: 71
По умолчанию

Цитата:
Сообщение от MyLastHit Посмотреть сообщение
Напиши по русски, и прежде чем отправлять - сам прочитай что получилось. Вообще не понял, что ты хочешь сделать.
поправил надеюсь понятно
Aleksandr69 вне форума Ответить с цитированием
Старый 21.03.2011, 18:20   #4
MyLastHit
Очень суровый
Участник клуба
 
Аватар для MyLastHit
 
Регистрация: 17.12.2009
Сообщений: 1,988
По умолчанию

Ну Вам нужно парсер написать. Стандартные парсеры состоят из ф-ии работы со строками. Это как Вы сказали pos,copy,delete,insert. Если есть проблемы с написанием парсера - пиши. Только конкретно, что не понятно или не получается.
Функции работы со строками очень простые для понимания. Но мозг конкретно вынести могут пока сам код напишешь)
Ненавижу быть как все, но люблю, чтобы все были как я.

Последний раз редактировалось MyLastHit; 21.03.2011 в 18:25.
MyLastHit вне форума Ответить с цитированием
Старый 21.03.2011, 19:17   #5
Aleksandr69
Пользователь
 
Регистрация: 11.12.2010
Сообщений: 71
По умолчанию

сделал так

Код:
  ins:='ttt';
  isk := '[key]';

  AdvMemo1.Lines.Text:=StringReplace(AdvMemo1.Lines.Text, isk, ins,[rfReplaceAll, rfIgnoreCase]);
 // showmessage(AdvMemo1.Lines.Text);
Aleksandr69 вне форума Ответить с цитированием
Старый 22.03.2011, 01:48   #6
Aleksandr69
Пользователь
 
Регистрация: 11.12.2010
Сообщений: 71
По умолчанию

Цитата:
Сообщение от MyLastHit Посмотреть сообщение
Ну Вам нужно парсер написать. Стандартные парсеры состоят из ф-ии работы со строками. Это как Вы сказали pos,copy,delete,insert. Если есть проблемы с написанием парсера - пиши. Только конкретно, что не понятно или не получается.
Функции работы со строками очень простые для понимания. Но мозг конкретно вынести могут пока сам код напишешь)
использовал код так как показалось проще конечно вариант с

Код:
ins:='ttt';//на что меняем

isk := '[key]';//искомый ключ

AdvMemo1.Lines.Text:=StringReplace(AdvMemo1.Lines.Text, isk, ins,[rfReplaceAll, rfIgnoreCase]);
как сделать разные замены допустим первый кей заменить на (вася) второй на (петя ) итд считать замены?
Aleksandr69 вне форума Ответить с цитированием
Старый 22.03.2011, 03:21   #7
kangreon
Форумчанин
 
Аватар для kangreon
 
Регистрация: 03.04.2009
Сообщений: 305
По умолчанию

Код:
const
  key: array[0..n] of string=('[key1]', '[key2]', ... '[keyn]');
  value: array[0..n] of string=('value1', 'value2', ... 'valuen');
var
  s: string;
  i: integer;
begin
  // В s текст, в котором необходимо произвести замены
  for i := 0 to n {вместо n размер массива} do
    s := StringReplace(s,key[i], value[i], [rfReplaceAll]);
end;
kangreon вне форума Ответить с цитированием
Старый 25.03.2011, 10:21   #8
Aleksandr69
Пользователь
 
Регистрация: 11.12.2010
Сообщений: 71
По умолчанию

Цитата:
Сообщение от kangreon Посмотреть сообщение
Код:
const
  key: array[0..n] of string=('[key1]', '[key2]', ... '[keyn]');
  value: array[0..n] of string=('value1', 'value2', ... 'valuen');
var
  s: string;
  i: integer;
begin
  // В s текст, в котором необходимо произвести замены
  for i := 0 to n {вместо n размер массива} do
    s := StringReplace(s,key[i], value[i], [rfReplaceAll]);
end;

Код:

 for i:=0 to ParamListBox1.Items.Count -1 do begin
      ins:=ParamListBox1.Items[i];
      AdvMemo1.Lines.Text:=StringReplace(AdvMemo1.Lines.Text, isk, ins,[rfIgnoreCase]);
сделал так ,убрал флаг rfReplaceAll и сделал цикл
Aleksandr69 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как получить из webbrawser'а исходник HTML в memo Marsel737 Общие вопросы Delphi 5 25.11.2009 18:37
Текст HTML документа в Memo Delpinist Компоненты Delphi 9 09.09.2009 13:19
В Memo сделать так, чтобы текст был разного цвета, разноцветный memo Artem Компоненты Delphi 3 07.09.2007 13:40
Текст html-странички в поле Memo Delpinist Win Api 5 18.12.2006 14:57