генерация xml из пары текстовых файлов

Модератор: Модераторы разделов

Аватара пользователя
Danhuu
Сообщения: 152
Статус: Пингвинофил
ОС: ArchLinux, Calculate, Gentoo

генерация xml из пары текстовых файлов

Сообщение Danhuu »

Собственно, есть несколько сотен пар файлов .mif + .mid (обменный формат MapInfo), которые надо слить в xml. Пример:
Файл example.mif:

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

Version   300
Charset "WindowsCyrillic"
Delimiter ","
Index 5
CoordSys Earth Projection 6, 1001, "km", 100, 54, 47, 62, 0, 0 Bounds (-20577.3399667, -15988.1585194) (20577.3399667, 25166.521414)
Columns 9
  ID Integer
  RUS_RAYON Char(35)
  OLD_NAME Char(35)
  ENG_RAYON Char(35)
  BELONG_TO Integer
  Oblast Char(35)
  POPULATION Float
  URBAN Float
  RURAL Float
Data

Region  1                                             #число полигонов
  441                                                    #число точек полигона
1609.66209 2237.75208                     #пары координат
1609.85749 2239.16405
....     ...
1609.66209 2237.75208
    Pen (1,2,0)
    Brush (2,16776960,16777215)
    Center 1791.93829 2179.86816       #координаты центра
Region  2
 248
x0 y0
x1 y1
... ...
x246 y246
x0 y0
 45
x0 y0
x1 y1
... ...
x43 y43
x0 y0
    Pen (1,2,0)
    Brush (2,16776960,16777215)
    Center x y

Файл example.mid:

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

# ID,RUS_RAYON,OLD_NAME,ENG_RAYON,BELONG_TO,Oblast,POPULATION,URBAN,RURAL
5801,"Абыйский р.","","Abyiskiy",16,"",5.9,3.4,2.5
5803,"Аллаиховский р.","","Allaikhovskiy",16,"",5.2,3.9,1.3

Должен получиться файл example.xml:

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

<?xml version="1.0" encoding="UTF-8"?>
<map numregs=2>
  <attributes num=9>
  ID,RUS_RAYON,OLD_NAME,ENG_RAYON,BELONG_TO,Oblast,POPULATION,URBAN,RURAL
  </attributes>
  <region id=5801 numpols=1>
    <RUS_RAYON>Абыйский р.</RUS_RAYON>
    <OLD_NAME>null</OLD_NAME>
    <ENG_RAYON>Abyiskiy</ENG_RAYON>
    <BELONG_TO>16</BELONG_TO>
    <Oblast>null</Oblast>
    <POPULATION>5.9</POPULATION>
    <URBAN>3.4</URBAN>
    <RURAL>2.5</RURAL>
    <Center>1791.93829 2179.86816</Center>
    <polygon numpoints=441>
      <coords>1609.66209 2237.75208,x1 y1, ... ,1609.66209 2237.75208</coords>
    </polygon>
  </region>
  <region id=5803 numpols=2>
    <RUS_RAYON>Аллаиховский р</RUS_RAYON>
    <OLD_NAME>null</OLD_NAME>
    <ENG_RAYON>Allaikhovskiy</ENG_RAYON>
    <BELONG_TO>16</BELONG_TO>
    <Oblast>null</Oblast>
    <POPULATION>5.2</POPULATION>
    <URBAN>3.9</URBAN>
    <RURAL>1.3</RURAL>
    <Center>x y</Center>
    <polygon numpoints=248>
      <coords>x0 y0,x1 y1, ... ,x0 y0</coords>
    </polygon>
    <polygon numpoints=45>
      <coords>x0 y0,x1 y1, ... ,x0 y0</coords>
    </polygon>
  </region>
</map>

Совсем по уму, в процессе надо ещё пересчитывать координаты в экранные исходя из (maxX,maxY), (minX,minY) и заданных размеров окна (алгоритм уже есть и опробован).
Собственно, вопрос: на чём скрипт писать? Варианты: bash + стандартные консольные инструменты, php, Perl. Bash знаю на базовом уровне, на php когда-то писал, но сильно подзабыл, про Perl знаю, что он есть и многие считают его удобным для таких вещей. Так что в любом случае что-то надо штудировать, вопрос что оптимально?
Спасибо сказали:
Аватара пользователя
Voral
Сообщения: 1205
ОС: Debian Wheezy (amd64)

Re: генерация xml из пары текстовых файлов

Сообщение Voral »

Danhuu писал(а):
30.06.2009 15:06
Собственно, вопрос: на чём скрипт писать? Варианты: bash + стандартные консольные инструменты, php, Perl. Bash знаю на базовом уровне, на php когда-то писал, но сильно подзабыл, про Perl знаю, что он есть и многие считают его удобным для таких вещей. Так что в любом случае что-то надо штудировать, вопрос что оптимально?


лучше, конешно, на том который знаешь. ПХП вполне подойдет.
То что не убивает нас, делает нас сильнее! © Ницше.
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: генерация xml из пары текстовых файлов

Сообщение NickLion »

Я бы писал на перле, потому что знаю его и для этой задачи он удобнее C++. Сравнить с php не могу - не знаю.
Спасибо сказали:
Аватара пользователя
Danhuu
Сообщения: 152
Статус: Пингвинофил
ОС: ArchLinux, Calculate, Gentoo

Re: генерация xml из пары текстовых файлов

Сообщение Danhuu »

Мдя... интересно было бы узнать мнение знающего и то и другое и третье, но всё равно спасибо отвечающим.
Спасибо сказали:
sim1
Сообщения: 155
ОС: GNU,BSD

Re: генерация xml из пары текстовых файлов

Сообщение sim1 »

Danhuu писал(а):
01.07.2009 13:06
Мдя... интересно было бы узнать мнение знающего и то и другое и третье, но всё равно спасибо отвечающим.


когда-то занимался подобной задачей, сейчас поковоряюсь в своих архивах, если найду выложу то, что когда то было написано ...
Спасибо сказали:
Аватара пользователя
Portnov
Модератор
Сообщения: 1786
Статус: Матёрый линуксоид
ОС: Debian testing/unstable

Re: генерация xml из пары текстовых файлов

Сообщение Portnov »

Как знающий все перечисленные языки ;) - стал бы писать на Python (а если исходный формат и/или обработка сложные нужны - то и вовсе haskell) ;). Из перечисленного - perl, хотя в принципе и php сойдёт, конечно.
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Спасибо сказали: