![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как разбить строку
andrewtitoff © (2009-11-07 21:33:00)Имеется строка с адресом, разделяемая " д. "," к. "," п. ", соответственно дом, корпус парадная, в строке соответственно идет подряд улица, дом, корп, парадная, но обязательно должна быть только улица, а всего остального может не быть, или быть в любых комбинациях, соответственно вопрос: как правильно разбить на подстроки соответствующие названию улицы, номера дома, корпуса и парадной?
Сергей М. (2009-11-07 22:23:00) [41]Ага.
Так а строка-то откуда взялась ?
Это результирующее представление той самой выборки или что ?
И каким боком тут комбобокс ?
andrewtitoff (2009-11-07 22:20:00) [42]Собственно говоря изначальна задача стоит такая : http://www.delphimaster.ru/cgi-bin/forum.pl?id=1257601841&n=18просто никто не ответил и тему закрыли, и я решил делать так...
andrewtitoff (2009-11-07 22:19:00) [43]
> Сергей М. © (07.11.09 22:13) [9]
> А порядок следования элементов соблюдается всегда ?
Да, строго, изначально эта строка собирается из базы street+' д. '+house+' к. '+corp+' п. '+paradn
Сергей М. (2009-11-07 22:13:00) [44]А порядок следования элементов соблюдается всегда ?
andrewtitoff (2009-11-07 22:09:00) [45]
> Сергей М. © (07.11.09 22:02) [7]
> > озадачивает созможность отсутствияЧем озадачивает-то ?
> Ну вернет Pos() минус единицу - значит копировать нечего
> .
Ну это с лева, хотя в идеале хотелось бы что бы и название улицы могло отсутствовать, а еще же с права нудно ограничивать то ли до конца исходной строки, то ли до следующего элемента, и вопрос еще до кокого, например как я уже писал "Авангардная д. 20 п. 4"
сначала до дома обрезаем, а потом то как?, ведь корпуса то нет, но парадная то есть...
Сергей М. (2009-11-07 22:02:00) [46]
> озадачивает созможность отсутствия
Чем озадачивает-то ?
Ну вернет Pos() минус единицу - значит копировать нечего .
andrewtitoff (2009-11-07 21:59:00) [47]
> Сергей М. © (07.11.09 21:53) [5]
> > я это себе представляю только при помощи "copy" и "pos"Правильно
> представляешь.> пока ничего в голову не приходит кроме как
> линейноТак тебя же никто не торопит)Посиди, подумай, изложи
> мысли на бумаге - и решениес циклом придет)
Просто я надеялся на подсказочку, собственно говоря озадачивает созможность отсутствия дома, корпуса и парадной в произвольном виде...
Сергей М. (2009-11-07 21:53:00) [48]
> я это себе представляю только при помощи "copy" и "pos"
Правильно представляешь.
> пока ничего в голову не приходит кроме как линейно
Так тебя же никто не торопит)
Посиди, подумай, изложи мысли на бумаге - и решениес циклом придет)
andrewtitoff (2009-11-07 21:52:00) [49]
> Омлет © (07.11.09 21:44) [2]
> Pos('д.', S)?
Да это понятно, как например вот такое разбить: "Авангардная д. 20 п. 4"?
andrewtitoff (2009-11-07 21:50:00) [50]
> Сергей М. © (07.11.09 21:43) [1]
> > как правильноТ.е. как неправильно - это ты знаешь, а как
> правильно - это уже для тебя проблема, так ?
Ну что то типа того, хотелось бы это сделать желательно циклом или может я не знаю о существовании каких то функций...
Пока что я это себе представляю только при помощи "copy" и "pos", т.е. последовательно проверять на наличие " д. "," к. "," п. " и вырезать нужные куски, только пока ничего в голову не приходит кроме как линейно if-али проверять все комбинации, т.к. дома, корпуса и парадные могут присутствовать или отсутствовать совершенно произвольно
Омлет (2009-11-07 21:44:00) [51]Pos('д.', S)?
Сергей М. (2009-11-07 21:43:00) [52]
> как правильно
Т.е. как неправильно - это ты знаешь, а как правильно - это уже для тебя проблема, так ?