Названия полей на кириллице

MapInfo, MapBasic
Ответить
Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 8896
Зарегистрирован: 06 окт 2003, 20:20
Статьи: 231
Проекты: 12/6
Репутация: 640
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Названия полей на кириллице

Сообщение Максим Дубинин » 16 авг 2012, 17:01

У меня много MIF/MID, у них поля названы кириллицей, например:

Код: Выделить всё

Columns 3
  Код_типа_объекта Integer
  Тип_объекта Char(60)
  Название Char(40)
Data
Собираюсь написать скрипт, который заменит названия полей на латиницу. Есть какие-то подводные камни в таком подходе? Потеря связи с атрибутикой или еще чего. Вроде на первый взгляд засад не видно и конвертируется нормально, но я не большой знаток формата.
пристегивайтесь, турбулентность прямо по курсу

Boris
Гуру
Сообщения: 3927
Зарегистрирован: 10 апр 2006, 22:34
Статьи: 3
Проекты: 1
Репутация: 349
Откуда: Париж

Re: Названия полей на кириллице

Сообщение Boris » 16 авг 2012, 18:08

нет никаких подводных камней. формат MIF/MID - последовательный. важен только порядок колонок, выписанных в заголовке MIF файла, он и определяет типы и названия полей в MID.

Больше того, изменения названий в текстовом файле TAB приводят к тому же результату. :) Названия полей в файле DAT (DBF III) - не используются. Используется только порядок.

Донецков
Гуру
Сообщения: 3051
Зарегистрирован: 19 май 2010, 19:44
Репутация: 187

Re: Названия полей на кириллице

Сообщение Донецков » 16 авг 2012, 19:44

в текстовом файле TAB приводят к тому же результату
- спасибо за наводку...

Boris
Гуру
Сообщения: 3927
Зарегистрирован: 10 апр 2006, 22:34
Статьи: 3
Проекты: 1
Репутация: 349
Откуда: Париж

Re: Названия полей на кириллице

Сообщение Boris » 17 авг 2012, 00:04

PS
ORG в этом солидарен с Mapinfo - то же берет названия и типы из TAB файла.

Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 8896
Зарегистрирован: 06 окт 2003, 20:20
Статьи: 231
Проекты: 12/6
Репутация: 640
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Re: Названия полей на кириллице

Сообщение Максим Дубинин » 25 авг 2012, 21:08

Возможно кому-то пригодится.

Два скрипта на питоне для нормализации полей названных на кириллице для MIF/MID.
+
Два скрипта на питоне для нормализации полей названных на кириллице для CSV.

Работает так:
1. Запускаем

Код: Выделить всё

python extract_field_names.py c:\temp\ fields.csv translit 
или

Код: Выделить всё

python field_sanitizer_read.py c:\temp\ fields.csv translit 
создает fields.csv, с перечнем всех уникальных полей во всех файлах mif и/или tab или csv.

2. Если есть ключ translit, то автоматом сконвертирует названия поле транслитом (возможно работает только в Win). Если транслит не устраивает, редактируем этот перечень добавляя эквиваленты как вам нравится

3. Запускаем

Код: Выделить всё

python substitute_field_names.py input_folder output_folder fields.csv
или

Код: Выделить всё

python field_sanitizer_write.py input_folder output_folder fields.csv
Который производит замену всех названий полей ДО на названия полей ПОСЛЕ из fields.csv. В выходную папку (output_folder) складываются только новые MIF/TAB файлы или CSV, соответственно после проверки ими нужно перезаписать поверх те, что были обработаны.
Вложения
csv-field_sanitizer.7z
(1.93 КБ) 101 скачивание
mif-normalize-fields.7z
(1.88 КБ) 94 скачивания
пристегивайтесь, турбулентность прямо по курсу

Донецков
Гуру
Сообщения: 3051
Зарегистрирован: 19 май 2010, 19:44
Репутация: 187

Re: Названия полей на кириллице

Сообщение Донецков » 26 авг 2012, 06:52

Спасибо...

Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 8896
Зарегистрирован: 06 окт 2003, 20:20
Статьи: 231
Проекты: 12/6
Репутация: 640
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Re: Названия полей на кириллице

Сообщение Максим Дубинин » 26 окт 2012, 00:17

обновил оба скрипта выше, теперь работают как с MIF, так и с TAB

командная строка тоже немного поменялась, описание изменено выше, скрипты там же
пристегивайтесь, турбулентность прямо по курсу

Аватара пользователя
ANAT01
Активный участник
Сообщения: 153
Зарегистрирован: 18 апр 2012, 14:41
Репутация: 39

Re: Названия полей на кириллице

Сообщение ANAT01 » 26 окт 2012, 06:23

Было бы полезно на автомате переводить кириллицу в транслит.
К сожалению питона не знаю (

Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 8896
Зарегистрирован: 06 окт 2003, 20:20
Статьи: 231
Проекты: 12/6
Репутация: 640
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Re: Названия полей на кириллице

Сообщение Максим Дубинин » 26 окт 2012, 15:23

Добавил ключ translit в экстрактор имен. Скрипты там же.
ANAT01 писал(а):К сожалению питона не знаю (
Я тоже. Учитесь.
пристегивайтесь, турбулентность прямо по курсу

Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 8896
Зарегистрирован: 06 окт 2003, 20:20
Статьи: 231
Проекты: 12/6
Репутация: 640
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Re: Названия полей на кириллице

Сообщение Максим Дубинин » 13 фев 2013, 13:52

Обновил скрипты для mif/tab и добавил отдельную пару для CSV, ссылки и описания выше.
пристегивайтесь, турбулентность прямо по курсу

Ответить

Вернуться в «MapInfo»