|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
30.11.2018, 01:57 | #1 |
Форумчанин
Регистрация: 07.06.2015
Сообщений: 164
|
Парсинг кодов ОКТМО
вопрос из области кодирования информации
Есть справочник ОКТМО, можно взять http://www.gks.ru/metod/oktmo.html Справочник имеет иерархическую структуру. На вход получаю последовательно строки, для каждой строки родитель записи был получен ранее: 37 000 000 Муниципальные образования Курганской области 37 600 000 Муниципальные районы Курганской области/ 37 602 000 Альменевский муниципальный район 37 602 400 Сельские поселения Альменевского муниципального района/ 37 602 442 - Шариповский сельсовет Нужно для каждой записи найти родителя по иерархии, для каждой записи родитель идет раньше, чем сама запись, например 37 000 000 корень 37 600 000 родитель 37 000 000 37 602 000 родитель 37 600 000 37 602 400 родитель 37 602 000 37 602 442 родитель 37 602 400 Была идея у кода справа заменять по очереди цифры нулями и искать из списка ранее полученных записей совпадение с родителем, как-то так Код:
71 850 000 Городские округа Ханты-Мансийского автономного округа - Югры/ 71 871 000 - город Ханты-Мансийск В приказе который утверждает ОКТМО, сказано Формула структуры кода ОКТМО в первом разделе: ХХ ХХХ ХХХ, где: 1, 2 знаки идентифицируют объекты классификации первой ступени классификации; 3 – 5 знаки идентифицируют объекты классификации второй ступени классификации; 6 – 8 знаки идентифицируют объекты классификации третьей ступени классификации; На первой ступени классификации используется порядковый метод кодирования объектов классификации. На второй и третьей ступенях классификации применяется последовательный метод кодирования объектов классификации. При этом разряды 3 и 6 отведены под признаки соответственно Р1 и Р2, указывающие ступень классификации и вид кодируемого объекта. В этом случае применяется параллельный метод кодирования. Что за последовательный и параллельный метод кодирования объектов классификации??? Может кто-то сталкивался с такой проблемой и подскажет как распарсить такой массив информации(получить родителя)? |
30.11.2018, 04:21 | #2 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,291
|
Предположу, что для 811–849 родитель 810. Для 851–898 родитель 850. Тоже самое, если признак P1 будет 9, а не 8. В остальных случаях (схема родитель -> ребенок):
XX 000 000 -> XX X00 000 -> XX XXX 000 -> XX XXX X00 -> XX XXX XXX, где X - какая-то ненулевая цифра. Зеленым обозначил, что именно нужно проверять на ноль и обнулять. То есть, хранить родителей вообще не нужно, а нужно просто аккуратно занулять знаки. Но не могу это гарантировать, так как просто посмотрел бегло первый подвернувшийся том и немного потыкал какой-то сайт, который уже показывает иерархию.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
30.11.2018, 11:34 | #3 |
Форумчанин
Регистрация: 17.10.2018
Сообщений: 184
|
Все эти цифры до одного места пока з/п и грамотность не подымется до достойного уровня. Номерки дают люди, а не машина поэтому будут косяки в нумерации.
Вот вам и ответ, таблицу надо обработать построчно, родитель не имеет данных в графе "доп.данные". Поэтому либо так, либо создать новую таблицу с полем "код родителя". |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Конфликт кодов | Trimbl | Microsoft Office Excel | 6 | 23.06.2012 02:28 |
Конфликт кодов | Brucebelg | Microsoft Office Excel | 3 | 10.02.2012 12:20 |
Генерация уникальных кодов | Sorro | Microsoft Office Excel | 6 | 01.03.2010 10:54 |
Сканер штрих кодов | asale | Microsoft Office Excel | 7 | 30.11.2008 19:57 |