|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
17.11.2016, 05:56 | #1 |
Старожил
Регистрация: 05.06.2008
Сообщений: 4,206
|
Выбрать текст между двумя словами, когда начало второго неизвестно
Доброго времени суток!
Есть небольшая задачка. Есть строка. Она начинается с определенного символа, потом идет число, потом 3 подряд буквы, потом дальше число. Мне нужно получить число, которое идет после самого первого символа, с которого начинается строка и стоит перед тремя подряд идущими буквами. 100% там будут 3 подряд буквы, буквы будут разные, но точно будут буквы. Например, есть строка. C1ABC0000. Нужно получить число 1 (потому что оно стоит до ABC) Или другой пример. С10DEF0011 Нужно получить число 10 (потому что оно стоит до DEF) И так далее. Функция получения текста между словами у меня есть. Вопрос в том, как в качестве "правой границы диапазона поиска" указать, что искать до трех рядом стоящих букв. Прошу помочь, кто чем может, но только не деньгами Вот функция по выборе текста между словами, которая, по идее, должна работать (нашел в Интернете): Код:
Но! В результате мне выдается пустое сообщение. Хотя моя идея вроде как работает. Вот, что я делал: Код:
Прошу помочь доделать... ---------------------------------------------------------------------------------------------------------------------------------- Вообщем, моя смекалка снова помогла мне)) Вообщем, я нашел решение в одну строку. У меня есть функция, которая ищет текст до указанного значения. Речь о функции GetBefore(). Я ее применил к моей идее, код который я привел чуть выше, и, работает! Дальше просто нужно убрать первый символ из полученной строки и все, получил искомое число)
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
Последний раз редактировалось artemavd; 17.11.2016 в 07:14. |
17.11.2016, 08:43 | #2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Ну число с фиксированной позиции - от нее искать первую не цифру просто в цикле и всех делов. Не важно сколько там буков подряд 1, 2 или 22
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
17.11.2016, 10:40 | #3 |
Участник клуба
Регистрация: 09.11.2007
Сообщений: 1,761
|
В цикле со второго элемента проверять на букву и если верно то остановить цикл, иначе добавить в строку.
Например так: Код:
Последний раз редактировалось FaTaL; 17.11.2016 в 12:21. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
как найти кол-во символов между двумя одинаковыми словами? | Павел2517 | Помощь студентам | 2 | 26.03.2016 22:15 |
Паскаль АBC, строки. Дан текст. Между соседними словами – не менее одного пробела, за последним словом. | Margosham-k | Помощь студентам | 0 | 18.04.2012 15:28 |
Выбрать даты в StringGrid находящиеся между двумя другими датами | Serebah | Общие вопросы Delphi | 7 | 03.02.2011 14:51 |
копирование текста между двумя словами | pavel.lug | Microsoft Office Word | 14 | 28.08.2009 14:27 |
Как обрезать строку между двумя словами | vitaleg | PHP | 3 | 28.07.2009 20:32 |