![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как удалить слово из строки [D5, D6, Win95/98, WinME, NT4, WinXP]
VS2001 © (2002-07-10 06:29:00)Как из строки, например: "c:\program files\common\proga" удалить
слово "\proga", т.е. чтобы осталось c:\program files\common
Zlobny (2002-07-10 10:25:00) [1]В общем случае может быть полезна функция LastDelimiter(<разделители>,<строка>), которая определяет позицию последнего разделителя(лей) в строке: p:=LastDelimiter("\/",s)
AlexanderVasjuk (2002-07-10 10:24:00) [2]delete(S, LastDelimiter("\", S), MaxInt);
Fiend (2002-07-10 10:22:00) [3]То MBo ©
это в частном случае Екстракт, а в принципе, если там неизвестно что за строка то StringReplace
MBo (2002-07-10 10:15:00) [4]велосипед для данного случая называется ExtractFileDir
Fiend (2002-07-10 09:47:00) [5]Помоему самый лучший выход это StringReplace. Ровно одна функция
IlyaA (2002-07-10 09:45:00) [6]С начала найди где енто слово находится.
Pos(<слово>,<строка>)
А за тем удали
Delete(<строка>,Pos(<слово>,<строка>),Length(<слово>))
BAY (2002-07-10 09:43:00) [7]PS тока в while добавь проверку на отсутствие "\" вообще.
например
...
while (S[i]<>"\") and (i>0) do
...
BAY (2002-07-10 09:41:00) [8]i:=Length(S);
while S[i]<>"\" do
dec(i);
Setlength(S,i-1);
Kaban (2002-07-10 09:03:00) [9]господи, да удаляй просто по одному символу с конца, пока слэш не встретишь
Dimich1978 (2002-07-10 08:56:00) [10]http://delphibase.endimus.com/?action=viewfunc&topic=winappctrl&id=10260
Посмотри там пример похож, но там разделение на составляющие. Ну думаю и удалить не сложно.
MBo (2002-07-10 07:19:00) [11]pos delete
в данном случае подойдут ExtractFileDir и ExtractFilePath