![]() |
Как из наименования вытащить цифру? пр. Куликова дом 30 кв 1 пр.Победы дом 37 кв 1 ул. Придонская дом 12 кв 30 Как вытащить номер дома? УСН.УК.ЖилСервис. |
СтрПолучитьСтроку(СтрЗаменить(СокрЛ(Сред(МояСтрока,Найти(Врег(МояСтрока)," ДОМ ")+5))," ",Символы.ПС),1) Как-то так... |
Спасибо. А если "ДОМ" не везде? |
тогда сажаем оператора и он всё вытащит, что не вытащит - нафантазирует |
+ в случае, если данные хранятся более формализовано, а в строку лишь "собираются" для отображения в [печатных] формах, парсить строку,- моветон. ИМХО |
Хорошо, понял, спасибо. |
2-Капуста > а если между первой и второй цифрой в номере дома случайно затесался пробел? А если после "дом" будет точка, а не пробел как в строке поиска? А если.... А если... ЗЫ парсинг вообще дело неблагодарное. Могу и другие алгоритмы предложить на вскидку :) |
Число(СтрЗаменить(Сред(МояСтрока,Найти(МояСтрока," кв "))," кв ","")) |
7-Зелёный тролль > улица 1905 года. Да |
если ДОМ не везде, то и номера видимо у него не будет |
8-roma n > да я ваще не правильно написал, я про квартиру |
7-Зелёный тролль > Так тоже красиво получается :) |
8-roma n >9-Зелёный тролль >Будем проставлять ДОМ |
Где нет. |
?(Найти(Врег(МояСтрока)," ДОМ ") > 0,Число(СтрЗаменить(Сред(ВРЕГ(МояСтрока),Найти(Врег(МояСтрока)," ДОМ "))," ДОМ ","")),"") |
для дома, и для случая если дома (а значит и номера его) нет |
nVar1=Find(xAdres,”дом”); nVar2=Find(xAdres,”кв”); xHouse=””; if nVar1>0 then xHouse=TrimAll( ?(nVar2=0, Mid(xAdres,nVar1+3), Mid(xAdres,nVar1+3,nVar2-nVar1-3) ) ); endif; |
?(Найти(Врег(МояСтрока)," ДОМ ") > 0,Число(СтрЗаменить(СтрЗаменить(Сред(ВРЕГ(МояСтрока),Найти(Врег(МояСтрока)," ДОМ "))," ДОМ ","")," ","")),"") убирает пробелы в номере дома |
ещё автор не уточнил, надо ли выводи букву дома или если номер дома с дробью. в этих случаях одной строкой кода обойтись будет сложно |
16-VadimB > ул Надомная дом 42 |
19-Зелёный тролль > Есть такое дело. :-) |
Как показывает многолетний опыт, предусмотрительность программиста рано или поздно проиграет фантазии пользователей. |
Выгружаю в файл дбф, плохо то, что лицевые счета в спр. контрагенты, забиты в наименования как в (0) [img]http://s51.radikal.ru/i133/1209/0d/8a1b9879f95a.jpg[/img] |
(22) Два вопроса: 1. Зачем? 2. Сколько? |
23-Ткачик > В Собесе (кажется оттуда) льготу по коммуналке предоставляют, ребята приволокли от туда файлик и сказали забивать туда данные. Ну, а так как в любом учете присутствует бардак, пытаемся вытянуть данные отовсюду. По поводу сколько, вроде все почти уже сделал. :) |
Так ты еще жалуешься (22) или уже хвастаешься (24)? |
25-Ткачик >Жалуюсь в (22) на то, что из начально забивали куда не надо, а (24) там в принципе и хвастаться нечем.:) |
(26) так вот на Арканцева нет "ДОМ", ищи первую цифру. по кладру посмотри есть ли в Семикаракорске улицы с цифрами и их учти. вряд ли их много. |
27-angro > Есть переулки, их от 1 до 23-его, но там часное домовладение. |
Кстати, встречаю иногда в адресах вместо слова "дом", слово "строение". Это тоже надо учесть... |
тьфу ты ну ты, выбираем все различные адреса с номером дома 0, и отдаём юзеру править. |
30-Зелёный тролль > Мне вот понравилась [url]http://infostart.ru/public/89095/#postform[/url] |
31-Капуста > и каким оно боком? |
| Текущее время: 12:10. Часовой пояс GMT +3. |