![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Работа со строками [D6]
Itonixxx © (2006-07-21 16:29:00)Предположим у меня есть строковая переменная такого вида
aaaaa,B.G,dddddddd,B.G,fff,B.G,jjjB.G
никак не могу придумать каким образом мне удалить все эти B.G,
(включяя запятую)
подскажите пожалуста (может где-то есть готовый алгоритм)
Джо (2006-07-21 23:54:00) [1]> Мне на все эти Delphi и прочее уже даже смотреть не интересно!
> :)
А кто заставляет?
XeON (2006-07-21 23:51:00) [2]Небольшое отсутупление от темы... Я пока наработе 1с да Delphi и C++ запрограммирую, в течении 10и часов без перерыва, т.к. работаб сразу за 4х программстов, которые уволились... Домой прихожу! Мне на все эти Delphi и прочее уже даже смотреть не интересно! :)
Юрий Зотов (2006-07-21 21:10:00) [3]> Itonixxx (21.07.06 21:01) [4]
1. Ищем точку.
2. Если не найдена - goto 8.
3. Удаляем все что перед ней - до запятой, либо до начала строки.
4. Удаляем все что после нее - до запятой, либо до конца строки.
5. Удаляем саму точку.
6. Если надо, удаляем запятую.
7. goto 1.
8. Все.
Итак, алгоритм есть. Запрограммировать его самому - разве это не интересно?
Itonixxx (2006-07-21 21:01:00) [4]а если усложнить зададу? надо удалить не только B. (с точкой) а и
G (которое может иметь перенную дину)?
к примеру
aa,B.GAB,hhhhh,B.GABB,...
тоесть B. будет стабильно,а вот после точки и до запятой может біть что угодно. как в єто случае?
Itonixxx (2006-07-21 16:37:00) [5]Спасибо! все так просто оказалось,а я думал будет намного сложнее вот и запутался :)
Elen (2006-07-21 16:35:00) [6]Вроде этого
i:=1;
while i<=length(s) do begin
if copy(s,i,3)='B.G' then inc(i,3) else begin
s2[i]:=s[i];
inc(i);
end;
end;
Пусик (2006-07-21 16:32:00) [7]См.
StringReplace