Страница 1 из 1
Названия полей на кириллице
Добавлено: 16 авг 2012, 17:01
Максим Дубинин
У меня много MIF/MID, у них поля названы кириллицей, например:
Код: Выделить всё
Columns 3
Код_типа_объекта Integer
Тип_объекта Char(60)
Название Char(40)
Data
Собираюсь написать скрипт, который заменит названия полей на латиницу. Есть какие-то подводные камни в таком подходе? Потеря связи с атрибутикой или еще чего. Вроде на первый взгляд засад не видно и конвертируется нормально, но я не большой знаток формата.
Re: Названия полей на кириллице
Добавлено: 16 авг 2012, 18:08
Boris
нет никаких подводных камней. формат MIF/MID - последовательный. важен только порядок колонок, выписанных в заголовке MIF файла, он и определяет типы и названия полей в MID.
Больше того, изменения названий в текстовом файле TAB приводят к тому же результату.

Названия полей в файле DAT (DBF III) - не используются. Используется только порядок.
Re: Названия полей на кириллице
Добавлено: 16 авг 2012, 19:44
Донецков
в текстовом файле TAB приводят к тому же результату
- спасибо за наводку...
Re: Названия полей на кириллице
Добавлено: 17 авг 2012, 00:04
Boris
PS
ORG в этом солидарен с Mapinfo - то же берет названия и типы из TAB файла.
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, соответственно после проверки ими нужно перезаписать поверх те, что были обработаны.
Re: Названия полей на кириллице
Добавлено: 26 авг 2012, 06:52
Донецков
Спасибо...
Re: Названия полей на кириллице
Добавлено: 26 окт 2012, 00:17
Максим Дубинин
обновил оба скрипта выше, теперь работают как с MIF, так и с TAB
командная строка тоже немного поменялась, описание изменено выше, скрипты там же
Re: Названия полей на кириллице
Добавлено: 26 окт 2012, 06:23
ANAT01
Было бы полезно на автомате переводить кириллицу в транслит.
К сожалению питона не знаю (
Re: Названия полей на кириллице
Добавлено: 26 окт 2012, 15:23
Максим Дубинин
Добавил ключ translit в экстрактор имен. Скрипты там же.
ANAT01 писал(а):К сожалению питона не знаю (
Я тоже. Учитесь.
Re: Названия полей на кириллице
Добавлено: 13 фев 2013, 13:52
Максим Дубинин
Обновил скрипты для mif/tab и добавил отдельную пару для CSV, ссылки и описания выше.