Squeak.ru - шаблоны программирования

Получить строку между двумя строками и концом родительской строки

Мне нужно извлечь строку между двумя разделителями, если быть точным, мне пришлось прикрепить адрес электронной почты к имени файла вложения, чтобы его можно было обработать и отправить обратно отправителю. (Это в Outlook 2013 VBA)

Формат имени файла: ADDRjohnDOTdoeATfooDOTcomXADDRA646A10.FOO.

Мои разделители: ADDR и XADDR.

Что мне нужно сделать, так это разделить строку и вернуть как строку электронной почты между разделителями, так и имя файла после XADDR.

И адрес электронной почты, и имя файла могут различаться по длине, расширение файла не является фиксированным.

Что исправлено, так это то, что ADDR всегда будет первыми 4 символами, а .XXX будет последними 3 символами.

21.06.2017

Ответы:


1

Для найдите, где начинается второй разделитель (в данном случае «XADDR»), и Mid для извлечения нужных частей:

Sub InstrDemo()
    Dim s, delim1, delim2 As String
    s = "ADDRjohnDOTdoeATfooDOTcomXADDRA646A10.FOO"
    delim1 = "ADDR"
    delim2 = "XADDR"

    Dim pos As Integer
    pos = InStr(s, delim2)

    Dim part1, part2 As String
    part1 = Mid(s, Len(delim1) + 1, pos - Len(delim1) - 1)
    part2 = Mid(s, pos + Len(delim2))

    MsgBox (part1 & vbCrLf & part2)

End Sub

Выходы:

введите здесь описание изображения

(Я использовал Excel 2013, потому что в то время это было проще.)

Лучше вводить разделители в виде таких строк, потому что это позволяет избежать использования "magic номера".


Или вы можете использовать функцию Split. :

Sub SplitDemo()
    Dim s, delim1, delim2 As String
    s = "ADDRjohnDOTdoeATfooDOTcomXADDRA646A10.FOO"
    delim1 = "ADDR"
    delim2 = "XADDR"

    s = Mid(s, Len(delim1) + 1)
    Dim parts() As String
    parts = Split(s, delim2)

    ' optional: check that the correct number of parts were found...
    If UBound(parts) <> 1 Then
        MsgBox ("Wrong number of parts.")
    End If

    MsgBox (parts(0) & vbCrLf & parts(1))

End Sub

Что дает тот же результат, что и предыдущий метод.

21.06.2017
  • Благодарю вас! одна мелочь, он оставил X в конце строки адреса электронной почты. 21.06.2017
  • @DigitalLightcraft Ой! Я не придирался к этому. 21.06.2017
  • Отлично, спасибо, все заработало, а также спасибо за 2-й вариант :-D 21.06.2017

  • 2

    если вы используете регулярные выражения, это довольно легко сделать, вы можете использовать эту ссылку в качестве ссылки Как использовать регулярные выражения (Regex) в Microsoft Excel как в ячейке, так и в циклах

    Вы можете использовать регулярное выражение, такое как "ADDR(.*)XADDR", это даст вам адрес электронной почты

    21.06.2017
    Новые материалы

    Угловая структура архитектуры
    Обратите внимание, что эта статья устарела, я решил создать новую с лучшей структурой и с учетом автономных компонентов: https://medium.com/@marekpanti/angular-standalone-architecture-b645edd0d54a..

    «Данные, которые большинство людей используют для обучения своих моделей искусственного интеллекта, поставляются со встроенным…
    Первоначально опубликовано HalkTalks: https://hacktown.com.br/blog/blog/os-dados-que-a-maioria-das-pessoas-usa-para-treinar-seus-modelos-de-inteligencia-artificial- ja-vem-com-um-vies-embutido/..

    Сильный ИИ против слабого ИИ: различия парадигм искусственного интеллекта
    В последние годы изучению и развитию искусственного интеллекта (ИИ) уделяется большое внимание и прогресс. Сильный ИИ и Слабый ИИ — две основные парадигмы в области искусственного интеллекта...

    Правильный способ добавить Firebase в ваш проект React с помощью React Hooks
    React + Firebase - это мощная комбинация для быстрого и безопасного создания приложений, от проверки концепции до массового производства. Раньше (знаете, несколько месяцев назад) добавление..

    Создайте API с помощью Python FastAPI
    Создание API с помощью Python становится очень простым при использовании пакета FastAPI. После установки и импорта вы можете создать приложение FastAPI и указать несколько конечных точек. Каждой..

    Веселье с прокси-сервером JavaScript
    Прокси-серверы JavaScript — это чистый сахар, если вы хотите создать некоторую общую логику в своих приложениях, чтобы облегчить себе жизнь. Вот один пример: Связь клиент-сервер Мы..

    Получить бесплатный хостинг для разработчиков | Разместите свой сайт за несколько шагов 🔥
    Статические веб-сайты — это веб-страницы с фиксированным содержанием и его постоянным содержанием. Но теперь статические сайты также обрабатывают динамические данные с помощью API и запросов...