Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как разбить строку


Страницы:   1 2 3

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]


> как правильно


Т.е. как неправильно - это ты знаешь, а как правильно - это уже для тебя проблема, так ?


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо