Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/76: Рейтинг темы: голосов - 76, средняя оценка - 4.64
 Аватар для Bitton
11 / 11 / 0
Регистрация: 23.11.2014
Сообщений: 114

Выделить из строки текст от первого пробела до последней запятой

10.12.2014, 16:18. Показов 15153. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет,

Возник вопрос, ни как не могу решить. Сколько искал ни чего дельного не нашел.

Есть строка к примеру: --- Титан. Краснодар, 000000029
Мне нужно сделать так, что бы на выходе у меня осталось: Титан. Краснодар

Т.е. нужно, что бы код понимал, что я хочу убрать с начала строки все символы до пробела (пробел включительно) и с конца строки все символы до запятой (запятая включительно).
Почему именно так, потому что, тот текст, что мне нужен на исходе может быть разной длинны.


Ребят, направьте на путь верный
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.12.2014, 16:18
Ответы с готовыми решениями:

Дано текст. Найти номер последней запятой
Дано текст. Найти номер последней запятой. Помогите пожалуйста с написанием программы.

Удалить текст после первого пробела
Добрый день. Как можно удалить текст текст после первого пробела. Например, первый текстовый файл второй текстовый файл третий...

как вытащить текст из Edit до первого пробела
например есть текст в Edit - "123 456 789" при нажатии на кнопку выводим во второй Edit "123" как это сделать?

10
 Аватар для mc-black
2786 / 718 / 106
Регистрация: 04.02.2011
Сообщений: 1,443
10.12.2014, 16:25
В Excel это делается без макросов, формулами ПОИСКПОЗ, ПСТР.
1
 Аватар для Bitton
11 / 11 / 0
Регистрация: 23.11.2014
Сообщений: 114
10.12.2014, 16:26  [ТС]
Цитата Сообщение от mc-black Посмотреть сообщение
В Excel это делается без макросов, формулами ПОИСКПОЗ, ПСТР.
Мне это нужно не в Excel, мне это нужно в Outlook
0
6082 / 1327 / 195
Регистрация: 12.12.2012
Сообщений: 1,023
10.12.2014, 16:45
Здравствуйте, Bitton,
Если я правильно понял вас, то решение следующее:

Visual Basic
1
2
    s = "--- Òèòàí. Êðàñíîäàð, 000000029"
    s = Mid(s, InStr(s, " ") + 1, InStrRev(s, ",") - InStr(s, " ") - 1)
Mid - аналог функции ПСТР, а InStr и InStrRev - аналоги функции ПОИКСПОЗ (только InStrRev ищет искомый текст не с начала, а с конца строки).

С уважением,
Аксима
1
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
10.12.2014, 16:46
Сюда не пробовал заглядывать?
* InStr (функция) - возвращает позицию первой найденной подстроки в строке
Функция

InStrRev
новая функция в VB6!
Синтаксис
InStrRev(stringcheck, stringmatch[, start[, compare]])
Функция служит для поиска номера символа, с которого начинается в заданной строке образец поиска. Поиск идет от указанной позиции справа налево. Для поиска вхождения с начала строки используйте функцию InStr.
1
 Аватар для Sasha_Smirnov
5562 / 1370 / 150
Регистрация: 08.02.2009
Сообщений: 4,109
Записей в блоге: 30
10.12.2014, 16:59
Лучший ответ Сообщение было отмечено Bitton как решение

Решение

Эх! На 13 минут отстал от передовиков, но, ради разнообразия природы, вот
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
s = "--- Титан. Краснодар, 000000029"
 
tail = instr(s, ",")    'позиция 1-й запятой в строке s
head = instr(s, " ")    'позиция 1-го пробела в строке s
 
msgbox "Обрезаемая строка: " & s & vbCr & vbCr & _
       "Позиция 1-го пробела: " & head & vbCr & _
       "Позиция 1-й запятой: " & tail
 
inputbox s, "Обрезка от пробела до запятой", mid (s, head + 1, tail - head - 1) 
'в окне inputbox’а — усечённая s
Зато всё прогнал в VBS — это пойдёт в любом (не слишком древнем) VBA-приложении.
Миниатюры
Выделить из строки текст от первого пробела до последней запятой  
Вложения
Тип файла: rar Обрезка.rar (355 байт, 35 просмотров)
1
 Аватар для Bitton
11 / 11 / 0
Регистрация: 23.11.2014
Сообщений: 114
10.12.2014, 17:02  [ТС]
Теперь понял как, всем огромнейшее спасибо!!!
1
1 / 1 / 0
Регистрация: 26.03.2016
Сообщений: 42
01.05.2017, 18:09
Цитата Сообщение от Alex77755 Посмотреть сообщение
InStrRev
новая функция в VB6!
Синтаксис
InStrRev(stringcheck, stringmatch[, start[, compare]])
Функция служит для поиска номера символа, с которого начинается в заданной строке образец поиска. Поиск идет от указанной позиции справа налево. Для поиска вхождения с начала строки используйте функцию InStr.
Обе функции дают одинаковый результат 5:
Visual Basic
1
2
3
Private Sub My_InStrRev_InStr_example()
 MsgBox (InStr("Родина", "н"))
End Sub
Visual Basic
1
2
3
Private Sub My_InStrRev_InStr_example()
 MsgBox (InStrRev("Родина", "н"))
End Sub
т.е. поиск в обоих случаях идет слева направо.. почему?
0
 Аватар для pashulka
4138 / 2242 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
01.05.2017, 20:32
Не поиск идёт слева направо (InStrRev), а позиция отсчитывается с начала строки.

Visual Basic
1
2
3
4
Private Sub Test()
    MsgBox InStr("Берегите родину", "е")
    MsgBox InStrRev("Берегите родину", "е")
End Sub
1
132 / 108 / 22
Регистрация: 23.06.2015
Сообщений: 339
02.05.2017, 11:42
Bitton, вариант функции

Code
1
2
3
4
5
 Function vvv$(t$)
 With CreateObject("VBScript.RegExp"): .Pattern = "\s.+(?=,)"
    vvv = .Execute(t)(0)
 End With
End Function
Вложения
Тип файла: xls example_02_05_2017_cbt_comma.xls (34.0 Кб, 29 просмотров)
0
3946 / 2339 / 790
Регистрация: 02.11.2012
Сообщений: 6,214
02.05.2017, 11:45
Svsh2015, ничего что Bitton, задавал вопрос в 2014 году?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.05.2017, 11:45
Помогаю со студенческими работами здесь

Из строки удалить глухие согласные буквы, стоящие после запятой или пробела
Составить подпрограмму, которая из строки удаляет глухие согласные буквы, стоящие после запятой или пробела.

Извлечь из файла слово или текст до первого его пробела
Извлечь из файла слово или текст до первого его пробела Можно по быстрее плииизззз кто умеет

Строка без пробела перед запятой и с пробелом после запятой
Всем привет! Помогите, пожалуйста, составить регулярное выражение для строки содержащей буквы любого алфавита и перед символами “ , . ! ?...

Чтение строки до первого пробела
Написать программу, вычисляющую суммарный доход. Пример текстового файла: _______________________ 2000 Чтение лекций 1000...

Строки: Найти номера первой и последней по порядку запятой
Здравствуйте. Помогите пожалуйста со следующим заданием: Найти номера первой и последней по порядку запятой. Заменить запятые на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru