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

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

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.07.2014, 14:37   #11
Jaroslav
Форумчанин
 
Регистрация: 08.06.2009
Сообщений: 179
По умолчанию

Ребята, мне нужно удалять текст, находящийся между двумя парными скобками [ ], включая сами скобки. Имеется в виду 1 пара скобок. Спасибо, IgorGO и Hugo121

Последний раз редактировалось Jaroslav; 15.07.2014 в 14:43.
Jaroslav вне форума Ответить с цитированием
Старый 15.07.2014, 16:54   #12
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

уважаемый,

вопрос был таким:
в ситуации t1[t2[t3]t4 какие скобки определяют пару (что должно остаться после удаления t1[t2t4 или t1t4?) предложенная мною функция оставит t1[t2t4
а ранее опубликованная Вами t1t4

зато в ситуации t1[t2[t3]t4]t5
моя оставит: t1t5
а Ваша: t1t4]t5
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 15.07.2014, 20:20   #13
AndVGri
Форумчанин
 
Регистрация: 10.02.2012
Сообщений: 109
По умолчанию

IgorGO
Цитата:
в ситуации t1[t2[t3]t4
зато в ситуации t1[t2[t3]t4]t5
Так может упростить без цикла по первой [ и последней ]?
Код:
Public Function DeleteTextInBrackets(ByVal this As String) As String
    Dim vStart As Long, vEnd As Long
    vStart = InStr(this, "[")
    vEnd = InStrRev(this, "]")
    If (vStart > 0) And (vEnd > 0) Then
        DeleteTextInBrackets = Mid$(this, 1, vStart - 1) & Mid$(this, vEnd + 1)
    End If
End Function
Ну, может добавить классику на проверку парности открытых и закрытых и при нарушении возвращать ошибку
AndVGri вне форума Ответить с цитированием
Старый 15.07.2014, 20:26   #14
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

t1[t2]t3[t4]t5
по первой и последней останется t1t5 и проверки пройдут и пары совпадают, а короткой фразе описывающей задачу "надо удалять данные в скобках" должно остаться t1t3t5. вот моя функция именно это и оставит.

а с данными типа t1[t2[t3]t4 - не совсем понятно какие данные в скобках только [t3] или [t2[t3]

по первому и последнему - однозначно нет, и у меня там не только цикл, а еще рекурсия присутствует - DeleteTextInBrackets вызывает саму себя.

как в толковом словаре:
Рекурсия - см. рекурсия
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете

Последний раз редактировалось IgorGO; 15.07.2014 в 20:37.
IgorGO вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Максимальный и минимальный элементы массива. Программирование пользовательских функций. Serg017 Общие вопросы C/C++ 12 30.04.2014 22:02
Создание пользовательских функций Riona Общие вопросы C/C++ 1 12.04.2012 11:13
Программа с применением пользовательских функций,которая осуществляет выбор способа обмена данными NIKI18 C++ Builder 0 19.12.2011 19:32
Создание пользовательских функций для обработки числовой информации. Larisa7 Помощь студентам 1 16.12.2011 18:40
Создание пользовательских функций Lain. Помощь студентам 0 23.12.2010 23:23