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

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

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

Восстановить пароль

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

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

Помогите что то я не пойму,нужно удалить из строки ListBox1 часть текста которая находиться в sos.

Вот исходная строка в ListBox1:

Номер заменен на
<a class="rttytyt" href="/list.aspx?num=65651760100&annn=1&ca tt=776">18858080100</a>

Нужно что бы осталось:

Номер заменен на 18858080100


Код:
procedure TForm1.Edit1Change(Sender: TObject);
 var
  s,sos,m,e:string;
  i:integer;
begin
  e:='Номер заменен';
  for i:=0 to cxListBox1.items.Count-1 do
  if pos(AnsiUpperCase(e),AnsiUpperCase(ListBox1.Items[i]))>0 then //нашел нужную строку 
    begin

     ListBox1.Selected[i]:=true; //выбрал ,не обязательно  
     s:=ListBox1.Items[i];
     sos:=copy(s,pos('">',s)+0,length(s)-pos('">',s)+0);
     sos:=copy(sos,1,pos('<',sos));
     sos:=copy(sos,1,length(sos)-0);

     Memo1.Lines.add(sos);  //тут то что нужно удалить из строки ListBox1 
    // exit;
    end;
end;
или я уже изначально пошел по неправильному пути ,и нужно сразу удалять из ListBox1?
Aleksandr69 вне форума Ответить с цитированием
Старый 12.03.2011, 16:35   #2
Don Karleone
Форумчанин
 
Регистрация: 05.04.2010
Сообщений: 410
По умолчанию

Код:
s:=ListBox1.Items[j];
I:=pos('>', s);
Delete(s, 1, I);
I:=pos('<', s);
Delete(s, I, Legth(s) - I);
ListBox1.Items[j]:=s
ICQ: 593-013-807

Последний раз редактировалось Don Karleone; 12.03.2011 в 17:01.
Don Karleone вне форума Ответить с цитированием
Старый 12.03.2011, 16:49   #3
Aleksandr69
Пользователь
 
Регистрация: 11.12.2010
Сообщений: 71
По умолчанию

Цитата:
Сообщение от Don Karleone Посмотреть сообщение
Что-то я не понял. В memo добавляется 18858080100 а в ListBox1 вместо
<a class="rttytyt" href="/list.aspx?num=65651760100&annn=1&ca tt=776">18858080100</a> остается
<a class="rttytyt" href="/list.aspx?num=65651760100&annn=1&ca tt=776"></a>
ListBox1 изначально заполнен данными
------------------------------------------------
Вася
Петя
Маша
Номер заменен на<a class="rttytyt" href="/list.aspx?num=65651760100&annn=1&ca tt=776">5658080100</a>
Вася
Петя
Маша
Номер заменен на<a class="rttytyt" href="/list.aspx?num=6565660100&annn=1&ca tt=776">56550100</a>
Вася
Петя
Маша
Номер заменен на<a class="rttytyt" href="/list.aspx?num=656556100&annn=1&ca tt=776">1885806565</a>
-----------------------------------------------------

Вместо

Номер заменен на<a class="rttytyt" href="/list.aspx?num=65651760100&annn=1&ca tt=776">18858080100</a>

нужно чтобы осталось:

Номер заменен на 18858080100

Есть два варианта я так понимаю скопировать строку из ListBox1 вырезать то что ненужно и вставить на место или пройти циклом и удалить часть строки.

Последний раз редактировалось Aleksandr69; 12.03.2011 в 17:00.
Aleksandr69 вне форума Ответить с цитированием
Старый 12.03.2011, 17:29   #4
Aleksandr69
Пользователь
 
Регистрация: 11.12.2010
Сообщений: 71
По умолчанию

Люди Подскажите
Aleksandr69 вне форума Ответить с цитированием
Старый 12.03.2011, 17:30   #5
Don Karleone
Форумчанин
 
Регистрация: 05.04.2010
Сообщений: 410
По умолчанию

я же код вверху написал, вставь его в if
ICQ: 593-013-807
Don Karleone вне форума Ответить с цитированием
Старый 12.03.2011, 18:47   #6
Aleksandr69
Пользователь
 
Регистрация: 11.12.2010
Сообщений: 71
По умолчанию

Цитата:
Сообщение от Don Karleone Посмотреть сообщение
Код:
s:=ListBox1.Items[j];
I:=pos('>', s);Delete(s, 1, I);
I:=pos('<', s);
Delete(s, I, Legth(s) - I);
ListBox1.Items[j]:=s
не пашет ошибка list index out of bounds (447) делал так
Код:
 var
  s,sos,m,e:string;
  i,j:integer;
begin
  e:='Номер заменен';
  for i:=0 to ListBox1.items.Count-1 do
  if  pos(AnsiUpperCase(e),AnsiUpperCase(ListBox1.Items[i]))>0 then
      s:=ListBox1.Items[i];
      j:=pos('>', s);
      Delete(s, 1, j);
      j:=pos('<', s);
      Delete(s, j, length(s) - j);
      ListBox1.Items[i]:=s;

Последний раз редактировалось Aleksandr69; 12.03.2011 в 18:58.
Aleksandr69 вне форума Ответить с цитированием
Старый 12.03.2011, 18:58   #7
Don Karleone
Форумчанин
 
Регистрация: 05.04.2010
Сообщений: 410
По умолчанию

ну я надеюсь, отсутсвие begin...end после then это опечатка на форуме. В проге они присутствуют?
ICQ: 593-013-807
Don Karleone вне форума Ответить с цитированием
Старый 12.03.2011, 19:12   #8
Aleksandr69
Пользователь
 
Регистрация: 11.12.2010
Сообщений: 71
По умолчанию

Цитата:
Сообщение от Don Karleone Посмотреть сообщение
ну я надеюсь, отсутсвие begin...end после then это опечатка на форуме. В проге они присутствуют?
да заметил уже спасибо все работает ,туплю
Aleksandr69 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск и замена в столбце Garrison Microsoft Office Excel 24 12.09.2012 17:31
Поиск и замена текста Jantar Общие вопросы Delphi 10 26.07.2010 08:26
Поиск/Замена в RichEdit KREGI Компоненты Delphi 1 13.04.2010 13:47
поиск и замена gabbachild Microsoft Office Excel 4 26.01.2010 17:16
Поиск и замена слов. ildarn Общие вопросы C/C++ 1 25.11.2009 19:01