Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/47: Рейтинг темы: голосов - 47, средняя оценка - 4.72
0 / 0 / 0
Регистрация: 26.03.2013
Сообщений: 16
1

Поиск и удаление в Memo

02.05.2013, 01:00. Показов 8408. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите.
Задача такая у меня в Memo выводит текст,мне нужно найти определенный текст и удалить эту строчку с этим текстом в моем случае это будет слово "phot"
photo1_1
photo1_2
photo1_2
phot
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.05.2013, 01:00
Ответы с готовыми решениями:

Поиск удаление между Memo
Доброго врмени суток, Миряне! помогите пожалуйста с реализацией: есть два memo 1 и 2, нужно...

Поиск повторений в Memo и их удаление
Как создать поиск повторений в Memo1 и их удаление?

Поиск одинкаковых слов в memo и их удаление
Как сделать поиск слова, предложения введенного в едит и его последующего удаления. Удаление всех...

Поиск слова в memo, и удаление символов перед ним
Есть memo в котором содержится например такой текст: По сравнению с более развёйй<del><del>рнутыми...

7
Эксперт Pascal/Delphi
4912 / 2781 / 853
Регистрация: 04.10.2012
Сообщений: 10,121
02.05.2013, 01:16 2
Владимир_Наумов,

Поиск

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
procedure TForm1.Button1Click(Sender: TObject);
var 
Find:string; // Искомая строка 
i:integer; // Счетчик для цикла 
begin
 Find:=Edit1.Text; // Записываем в find текст из Edit
For i:=0 to Memo1.Lines.Count-1 do // Запускаем цикл поиска строки 
If Pos(Find, Memo1.Lines.Text)>0 
Then
Begin
// выделяем найденную строку
 Memo1.SetFocus();
 Memo1.SelStart:=Pos(Find,Memo1.Lines.Text)-1;
 Memo1.SelLength:=Length(Find);
End;
end;
Удаление
Delphi
1
Memo1.ClearSelection; // удалить выделенный текст
0
0 / 0 / 0
Регистрация: 26.03.2013
Сообщений: 16
02.05.2013, 02:46  [ТС] 3
Я чутка не понимаю.
0
Эксперт Pascal/Delphi
4912 / 2781 / 853
Регистрация: 04.10.2012
Сообщений: 10,121
02.05.2013, 03:12 4
что именно?
0
0 / 0 / 0
Регистрация: 26.03.2013
Сообщений: 16
02.05.2013, 10:17  [ТС] 5
Цитата Сообщение от droider Посмотреть сообщение
procedure TForm1.Button1Click(Sender: TObject);
var
Find:string; // Искомая строка
i:integer; // Счетчик для цикла
begin
*Find:=Edit1.Text; // Записываем в find текст из Edit
For i:=0 to Memo1.Lines.Count-1 do // Запускаем цикл поиска строки
If Pos(Find, Memo1.Lines.Text)>0
Then
Begin
// выделяем найденную строку
*Memo1.SetFocus();
*Memo1.SelStart:=Pos(Find,Memo1.Lines.Text)-1;
*Memo1.SelLength:=Length(Find);
End;
end;
Где он тут ищет мой текст?
То есть который я введу?
0
Эксперт Pascal/Delphi
4912 / 2781 / 853
Регистрация: 04.10.2012
Сообщений: 10,121
02.05.2013, 10:52 6
Владимир_Наумов, строка поиска задается в Edit (текстовое поле). Далее в цикле по всему тексту Memo идет проверка, встречается ли где-нибудь введенная Вами строка (на какой позиции в тексте). Если да, то она будет выделена...
Прикладываю архив для наглядности.
Вложения
Тип файла: rar Memo.rar (175.8 Кб, 65 просмотров)
0
263 / 109 / 26
Регистрация: 16.03.2013
Сообщений: 272
02.05.2013, 11:38 7
Мне не до конца понятно задание.
Ты говоришь тебе даны строки
photo1_1
photo1_2
photo1_2
phot
и нужно удалить строчку со словом phot. Строка должна в точности соответствовать вводимому тексту или слово просто должно встречаться в строке, чтоб она была удалена? Т.е. в данном примере должны удалиться все строки или только последняя?

Добавлено через 9 минут
Если нужно удалить только строки полностью соответствующие условию, то делаем так:
Delphi
1
2
3
4
5
6
7
8
9
10
11
procedure TForm1.Button1Click(Sender: TObject);
var
Find:string; // Искомая строка
i:integer; // Счетчик для цикла
begin
 Find:=Edit1.Text; // Записываем в find текст из Edit
For i:=Memo1.Lines.Count-1 downto 0 do // Идём с конца мемо к началу, чтоб не пропустить строки
  If Memo1.Lines[i]=Find Then //если строка полностью совпадает, то...
    Memo1.Lines.Delete(i);//удаляем найденную строку
  end;
end.
Добавлено через 1 минуту
Если же нужно удалить строки, в которых присутствует данное слово, то делаем так:
Delphi
1
2
3
4
5
6
7
8
9
10
procedure TForm1.Button1Click(Sender: TObject);
var
Find:string; // Искомая строка
i:integer; // Счетчик для цикла
begin
 Find:=Edit1.Text; // Записываем в find текст из Edit
For i:=Memo1.Lines.Count-1 downto 0 do // Запускаем цикл поиска строки
  If pos(Find, Memo1.Lines[i])>0 Then//если искомое слово присутствует в строке, то...
    Memo1.Lines.Delete(i);//удаляем найденную строку
  end;
0
Эксперт Pascal/Delphi
4912 / 2781 / 853
Регистрация: 04.10.2012
Сообщений: 10,121
02.05.2013, 11:41 8
ProRockX, скорее всего строки, где встречается подстрока "phot".
0
02.05.2013, 11:41
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.05.2013, 11:41
Помогаю со студенческими работами здесь

Удаление строки из memo
procedure TForm1.Button5Click(Sender: TObject); var i : Integer; begin with...

Удаление дублей в memo
Всем привет, не могу побороть удаление дублей строк вместе с оригиналом. Суть следующая, есть...

Удаление строк в memo
Здравствуйте. Подскажите пожалуйста) Задача такая - в memo загружаю текст, в каждой строке 1...

Удаление строк в memo
Имеем строки в memo1: Ошибка в тексте размерной надписи углового размера=19 Проверка...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru