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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.04.2008, 12:42   #1
- fenix -
 
Регистрация: 17.04.2008
Сообщений: 3
По умолчанию Как удалить из строки подстроку по маске ?

Подскажите пожалуйста, есть готовое решение для удаления из строки подстроку вида abcd="*" ?

звездочка- любой текст любой длины кроме "
- fenix - вне форума Ответить с цитированием
Старый 23.04.2008, 13:40   #2
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

procedure TForm2.Button1Click(Sender: TObject);
var s,s1:string;
begin
s:='Хочу удалить это слово';
s1:=StringReplace(s,'это','',[rfReplaceAll, rfIgnoreCase]);
edit1.Text:=s1;
end;
SERG1980 вне форума Ответить с цитированием
Старый 23.04.2008, 13:45   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
SERG1980
И где ж тут удаление по маске?

Феникс смотри сюда:
Код:
uses masks,.......
.........
var s:string; e:TStringList;i:integer;
begin
s:='эти слова это хорошо';
e:=TStringList.Create;
e.DelimitedText:=s;
e.Delimiter:=' ';
//********* FOR ******************
i:=0;
while i<=e.count-1 do
begin
 if MatchesMask(e[i],'эт*') then e.Delete(i) else inc(i);
end;
//******* END FOR ****************{}
s:=e.DelimitedText;
caption:=s;
end;
I'm learning to live...

Последний раз редактировалось Stilet; 23.04.2008 в 13:51.
Stilet вне форума Ответить с цитированием
Старый 23.04.2008, 14:37   #4
дмидми
Форумчанин
 
Аватар для дмидми
 
Регистрация: 06.03.2008
Сообщений: 352
Вопрос Требуется уточнение задания

Цитата:
Сообщение от - fenix - Посмотреть сообщение
есть готовое решение
1) Что значит "готовое решение"?
Цитата:
подстроку вида abcd="*" ?
звездочка- любой текст любой длины кроме "
2) "любой длины" - в том числе и нулевой?
3) То есть единственный вариант подстроки, не подлежащей удалению, это
abcd="""
, где слева от подстроки что угодно (в том числе и ничего), а справа от третьей двойной кавычки, замыкающей подстроку, нет ничего или есть любая строка, которая не начинается с двойной кавычки?
Если не так, то?..
дмидми вне форума Ответить с цитированием
Старый 23.04.2008, 15:04   #5
- fenix -
 
Регистрация: 17.04.2008
Сообщений: 3
По умолчанию

Спасибо всем кто помогает.

SERG1980, немного не то, подробнее ниже

Stilet, спасибо, посмотрю как работает

дмидми,
1.готовое решение имел ввиду стандартную функцию delphi по удалению по маске (вдруг есть такая)
2. нет, нулевой не надо. между ковычками обязательно текст есть
3. слева не что угодно а обязательно abcd="потом текст и заканчивается текст знаком "

и в строке удалить надо все подстроки такого вида. Справа от замыкающей обязательно идет текст который не начинается с двойной ковычки. В строке может быть несколько подстрок такого вида, обязательно разделенных текстом.
- fenix - вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как удалить слово из строки? Ellita Общие вопросы C/C++ 7 19.09.2007 15:43
Как удалить пустые строки в WORD? KUNAR Microsoft Office Word 2 04.09.2007 20:56
Удалить из Memo повторяющиеся строки Etar Компоненты Delphi 2 28.06.2007 18:34
Надо в RichEdit Удалить все строки между двумя пустыми Stas))) Компоненты Delphi 7 28.05.2007 16:49
удалить похожие строки ZORRO2005 Microsoft Office Excel 0 28.11.2006 22:03