Страницы: 1
RSS
Макрос на поиск по параметру (Поиск индекса (почтового кода))
 
Всем добрый день!
Есть один вопрос, решение которого я так и не нашел.

Понимаю, что скорее всего это невозможно, ввиду того, что на сайте не предусмотрен API и он не способен выводить страницу в формате xml, но тем не менее.
Есть такой сайт: http://ex.belpost.by/addressbook/
Это сайт белорусской почты, где можно посмотреть индекс. Можно ли как-то сделать так, чтобы макрос брал адрес, забитый в ячейке (причем не всегда идеально красиво) пробивал его через сайт белпочты и выдавал индекс.

Спасибо!
Изменено: vlad7790 - 21.09.2017 14:33:07
 
Цитата
vlad7790 написал:
не предусмотрен API
По ссылке вида
Код
http://ex.belpost.by/addressbook/get_address_by_data.php?street_id=НАЗВАНИЕ УЛИЦЫ&city_id=НАЗВАНИЕ ГОРОДА&region_id=НАЗВАНИЕ РЕГИОНА&obl_id=НАЗВАНИЕ ОБЛАСТИ
можно вытащить JSON c закодированными UNICODE'ом названиями.
Например так
Далее конвертируем юникод в нормальный текст, потом JSON обрабатываем какой-нибудь заточенной под это дело библиотекой.
То есть, чисто теоретически - возможно.
Попробую вечером что-нибудь придумать, если никто не сделает раньше :)
In GoTo we trust
 
tolstak, если вы сможете это сделать, то я век вас не забуду!
 
vlad7790, пробуйте.
Т.к. не из Беларуси - много адресов для проверки не "нарыл" :)
Вроде бы, основные кейсы (нет совпадений, пара совпадений, дубли, очень много результатов) отображены, но лучше погоняйте на реальных адресах.
http://ex.belpost.by/addressbook/ поддерживает поиск по частичному совпадению области, района, населенного пункта и улицы. Соответственно, "API" подтянул к этим полям. Разбор строк
Цитата
... адрес[а], забит[ого] в ячейке (причем не всегда идеально красиво)
не реализовывал. Только указанные поля, только хардкор)
In GoTo we trust
 
tolstak,спасибо огоромное! буду тестить!
 
tolstak, еще раз спасибо! Все отлично работает. Вы сделали отличную работу!

Если пару вопросов, с вашего позволения:
Можно ли добавить на всплывающее окно кнопки:
1. Пропустить (переход к следующему)
2. Пропустить все (в случае если решил не щелкать, чтобы закрыть все)

И можно ли реализовать такую функцию, чтобы если в графе индекс уже был вбит индекс , программа у меня сперва спрашивала,желаю ли я пересчитать соответствующие строки, а потом уже, в случае если я соглашусь, начинала все это пересчитывать.  
 
vlad7790, пробуйте :)
In GoTo we trust
 
tolstak, вау! Выше всяких похвал.
Цитата
tolstak написал:
Разбор строк Цитата... адрес[а], забит[ого] в ячейке (причем не всегда идеально красиво) не реализовывал. Только указанные поля, только хардкор)
С помощью форумчан удалось реализовать подобную функцию.
То есть я ввожу полный адрес, а специальная функция вычленяет из него город и улицу.
Вот только когда я копирую этот макрос, все модули и т.д. из своей таблички в вашу Excel пишет ошибку:
'Compile Error: User-defined type not defined'
Дальше в модуле выделяется первая строка: Public Function getCity(ByVal this As String) As String
А курсов ставится на эту: Dim pReg As New VBScript_RegExp_55.RegExp
То есть я не могу объединить два этих макроса в одном.

 
 
Вот, пример
 
vlad7790, в макросе использованы подключаемые библиотеки, нужно подкючить regular expressions и microsoft scripting runtime. К сожалению сейчас не смогу дать точную инструкцию - с телефона :-) Но на форуме точно было много раз о том как подключить.
In GoTo we trust
 
tolstak,спасибо, попробую сейчас сделать.  
 
Спасибо
Изменено: vlad7790 - 05.10.2017 17:04:11
 
Здраствуйте, у меня при запуске файла примера в строке выбивает ошибку
  • Err.Raise 10001, "JSONConverter", json_ParseErrorMessage(JsonString, json_Index, "Expecting '{' or '['")
Понятно, что прошло время и многое могло поменяться. Есть ли возможность подправить??
Страницы: 1
Наверх