| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Удаление с переменной всего что находится в <*> |
| Автор: Dima85 20.3.2008, 15:57 |
| Есть: s: string; В ней хранится текст до 5500 символов. Необходимо все символы которые находится в <тут> удалить, вместе с <>. Помогите пожалуйста. |
| Автор: Rrader 20.3.2008, 16:07 | ||||
Использование:
Вернет '14' |
| Автор: Dima85 20.3.2008, 16:13 |
| Как все сложно. А неужели проще решениев нет? |
| Автор: Rrader 20.3.2008, 16:15 | ||
Парсинг строки. Все очень просто |
| Автор: Alix 20.3.2008, 16:29 | ||
имхо, это не оптимально, удалять по одному символу, особенно для больших строк. Я бы сделал так:
|
| Автор: MetalFan 20.3.2008, 16:29 | ||
| можно с пом.регулярки в 1 строку Добавлено через 3 минуты и 43 секунды качаешь http://RegExpStudio.com подключаешь uses RegExpr и пишешь
|
| Автор: Poseidon 20.3.2008, 16:34 |
Мне вот интересно стало, как можно в string запихнуть строку длинее 255 символов??? |
| Автор: Poseidon 20.3.2008, 17:00 | ||
Воть, мой вариант
|
| Автор: Dima85 20.3.2008, 17:02 | ||||
Я знаю вот таким способом можно удалять символы с строчки
Так может есть какое-то аналогичное решение, что-то наподобие:
м? |
| Автор: Poseidon 20.3.2008, 17:07 | ||
Хех, точно! Что-то я подзабыл про Delete.
|
| Автор: MetalFan 20.3.2008, 17:12 |
обоснуй. разве что если критично быстродействие |
| Автор: ama_kid 20.3.2008, 17:17 | ||||
|
| Автор: Poseidon 20.3.2008, 17:24 |
| Ну, во-первых не вижу особой разницы с моим кодом. Разве что вместо результата функций подставил сами функции (так, кстати, никто не делает т.к. читать код сложно становится). А еще не понятно зачем EndPos объявлять А вообще "вопрос решен" нужно делать уже. Примеров достаточно |
| Автор: Alix 20.3.2008, 17:28 |
Да, именно из этих соображений. Всему есть предел и иногда удобство программирования не оправдывает потерь скорости. Имхо, мое решение для больших строк лучше. Попробую объяснить. Например, у Rrader - слишком много удалений по одному символу. У Poseidon, это исправлено, но мне кажется неверным способ, когда происходят постоянные удаления из середины строки. В его способе, как и в моем, происходит постоянная работа с памятью, но у меня она только растет (за счет append'a к result), а у него еще и копирование неслабого кол-ва символов. (Да, 5кб копирнуть - это фигня по нынешним временам, но мало ли что...) Если бы не было ключевых слов о том, что строки будут длинными, я бы и не заморачивался. |
| Автор: Poseidon 20.3.2008, 17:36 |
| У меня http://forum.vingrad.ru/index.php?showtopic=201637&view=findpost&p=1448737 вообще копирования нету. |
| Автор: Alix 20.3.2008, 17:38 |
ты не понял. Когда происходит удаление символов из строки, то та часть, которая была выше участка удаления потом копируется вниз. |