Страница 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, ссылки и описания выше.