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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.05.2010, 14:49   #1
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,899
По умолчанию Поиск и удаление из TStrings

Пытаюсь сделать приск и удаление записи находящейся в Edit, но не получается.
Вложения
Тип файла: rar Find_Delete.rar (5.7 Кб, 12 просмотров)
Shouldercannon вне форума Ответить с цитированием
Старый 27.05.2010, 14:54   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
if Copy(MBanIPs.Text[a], 1, length(Edit1.Text)) = Edit1.Text then
Код:
 if pos(Edit1.Text,MBanIPs.Text[a]) <>0 then Найдено
Цитата:
for i := 0 to MBanIPs.Count - 1 do
if MBanIPs.Text[i] = Edit1.Text then
begin
MBanIPs.Text := IntToStr(i);
Это ты зачем делаешь? Убери
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.05.2010, 14:57   #3
bitSoft
Programming...
Форумчанин
 
Аватар для bitSoft
 
Регистрация: 13.03.2010
Сообщений: 198
По умолчанию

zdesi ne pravilino na udalenie,

Код:
var
i: Integer;
begin
for i := 0 to MBanIPs.Count - 1 do
  if MBanIPs.Text[i] = Edit1.Text then
    begin
      MBanIPs.Text := IntToStr(i);
        MBanIPs.Delete(i);
          Memo1.Text := MBanIPs.Text;
            Break;
    end;
end;
//tipa tavo nado

Код:
var
i: Integer;
begin
for i := MBanIPs.Count - 1 downto 0 do
  if MBanIPs.Text[i] = Edit1.Text then
    begin
        MBanIPs.Delete(i);
          Memo1.Text := MBanIPs.Text;
            Break;
    end;
end;
Код:
With TProgrammersForum.Create do  AddNewTopic('Title','Content...');
bitSoft вне форума Ответить с цитированием
Старый 27.05.2010, 14:58   #4
bitSoft
Programming...
Форумчанин
 
Аватар для bitSoft
 
Регистрация: 13.03.2010
Сообщений: 198
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Код:
 if pos(Edit1.Text,MBanIPs.Text[a]) <>0 then Найдено
Это ты зачем делаешь? Убери

ya toje udalil , pervii raz v jizniu viju takoi prikol, udaliti vsio i zapisati, nomer stroki
Код:
With TProgrammersForum.Create do  AddNewTopic('Title','Content...');
bitSoft вне форума Ответить с цитированием
Старый 27.05.2010, 15:40   #5
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Заменить MBanIPs: TStrings; на MBanIPs: TStringList;

Код:
MBanIPs.Sorted := true;            //сортируем список
MBanIPs.Duplicates:= dupIgnore; //запрещаем добавление уже существующих строк

...

with MBanIPs do Delete(indexOf(Edit1.Text));
пыщь
JTG вне форума Ответить с цитированием
Старый 27.05.2010, 17:35   #6
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,899
По умолчанию

С удалением
Код:
with MBanIPs do
  Delete(indexOf(Edit1.Text));
    Memo1.Text := MBanIPs.Text;
всё хорошо, но если запись не надена, то ошибка List index out of bounds (-1)
Поиск вообще не работает, сразу же ошибка.
Shouldercannon вне форума Ответить с цитированием
Старый 27.05.2010, 19:15   #7
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Код:
try
  with MBanIPs do Delete(indexOf(Edit1.Text));
except
  //строка не найдена
end;
пыщь
JTG вне форума Ответить с цитированием
Старый 27.05.2010, 19:32   #8
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,899
По умолчанию

А как быть с поиском в TStringList?
Shouldercannon вне форума Ответить с цитированием
Старый 27.05.2010, 19:36   #9
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Точно так же. TStrings - абстрактный класс, с ним не нужно работать на прямую. А TStringList - его потомок, создан специально для работы со списком пар String, TObject. В вашем частном случае только для строк.
Sibedir вне форума Ответить с цитированием
Старый 27.05.2010, 19:47   #10
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,899
По умолчанию

Аллилуйя. Встроенный Help помог
Код:
//Находим данные
procedure TForm1.BFindClick(Sender: TObject);
var
Index: Integer;
begin
if MBanIPs.Find(Edit1.Text, Index) then
  ShowMessage('Найдено')
    else
      ShowMessage('Не найдено');
end;
Shouldercannon вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск и удаление символа в строке Karl_Karlovi4 Общие вопросы Delphi 14 26.10.2011 18:04
Поиск и удаление битых путей Shouldercannon Общие вопросы Delphi 13 15.11.2009 17:37
поиск мин., удаление эл-ов массива Dmitrич Общие вопросы C/C++ 2 01.06.2009 13:31
Поиск и удаление столбцов mchip Microsoft Office Excel 4 17.05.2009 18:48