Тема: VBS: работа с консольной программой orginfo
Здравствуйте, форумчане.
Пришёл я к вам с идейкой одной - упрощения работы с консольной программой orginfo
Я так думаю использовать VBS будет проще всего.
Для чего используется программа orginfo - вывод на экран или в текстовый файл информации о shape файле. Для меня она интересна тем, что выводит координаты объектов нарисованных в данном шейпе. Пользуюсь я ей давно. Для того, чтобы получить результат - приходится каждый раз руками вбивать путь до нужного шейп файла и путь с названием файла куда сохранить результат.
Выгляит это примерно так:
ogrinfo.exe -al путь\к\файлу\1.shp > куда\сохраняем\результат\1_point.txt
Мне хотелось бы упростить это и при помощи скрипта сделать так, чтобы нужный файл можно было выбрать через диалог выбора файла. Здесь я почитал, что это возможно в VBS.
Вот пример вывод программы orginfo
INFO: Open of `1_point.shp'
using driver `ESRI Shapefile' successful.Layer name: 1_point
Geometry: Point
Feature Count: 5
Extent: (51.492453, 62.746093) - (51.520140, 62.757243)
Layer SRS WKT:
GEOGCS["GCS_Pulkovo_1942",
DATUM["Pulkovo_1942",
SPHEROID["Krasovsky_1940",6378245.0,298.3]],
PRIMEM["Greenwich",0.0],
UNIT["Degree",0.0174532925199433]]
Id: Integer (6.0)
OGRFeature(1_point):0
Id (Integer) = 0
POINT (51.492453311330713 62.753389025492581)OGRFeature(1_point):1
Id (Integer) = 0
POINT (51.506102919415113 62.757242537754941)OGRFeature(1_point):2
Id (Integer) = 0
POINT (51.520139578304978 62.749826402423409)OGRFeature(1_point):3
Id (Integer) = 0
POINT (51.502170334364216 62.7460932799464)OGRFeature(1_point):4
Id (Integer) = 0
POINT (51.50494336287251 62.751651487743267)
Координаты выводятся в зависимости от геометрии слоя - линейный, полигональный или точечный. Т.е., например, для полигонального слоя вместо надписи POINT с последующей координатой точки, будет слово POLYGON с набором координат углов полигона.
Пример вывода информации по полигональному объекту:
INFO: Open of `3_polygon.shp'
using driver `ESRI Shapefile' successful.Layer name: 3_polygon
Geometry: Polygon
Feature Count: 1
Extent: (51.489175, 62.746164) - (51.512099, 62.756772)
Layer SRS WKT:
GEOGCS["GCS_Pulkovo_1942",
DATUM["Pulkovo_1942",
SPHEROID["Krasovsky_1940",6378245.0,298.3]],
PRIMEM["Greenwich",0.0],
UNIT["Degree",0.0174532925199433]]
Id: Integer (6.0)
OGRFeature(3_polygon):0
Id (Integer) = 0
POLYGON ((51.494000206994841 62.755212880273952,51.512099422620885 62.756772254821215,51.51151348353271 62.747533430387108,51.496215479026027 62.746164019087651,51.489174602817954 62.750359066241955,51.494000206994841 62.755212880273952))
Для чего я собственно написал пример вывода программы - можно каким-то образом средствами VBS извлекать координаты и пересчитывать по формуле из десятичных в градусы с минутами и секундами с последующим выводом этого хозяйства в текстовый файл?
Конечно, если это всё сложно - я буду рад и простому диалогу выбора файла для обработки orginfo с последующим автомотическим сохранением файла в папку с исходным файлом с тем же названием, только в формате ТХТ.
Я так понимаю, что скрипт должен начинаться с
Set objDialog = CreateObject("SAFRCFileDlg.FileOpen")
intResult = objDialog.OpenFileOpenDlg
потом - как правильно не знаю - пишем просто комнаду как в командной строке?
ogrinfo.exe -al а здесь как-то вставить полученный путь до файла > и результат сохранить с тем же именем по этому пути с расширением txt.
Или я совсем не правильно представляю вид скрипта?