Мелкие полезности из командной строки

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

Мелкие полезности из командной строки

Сообщение Boris » 14 сен 2011, 09:01

Мелкие полезности для общения с MapInfo из командной строки.
Для тех, кто знает, что такое командная строка :)
Все файлы написаны на VBS, встроенном в оболочку Windows всех версий, где есть Internet Explorer 5.0 и выше. Запускаются из командной строки и общаются запущенной версией MapInfo, пересылая ей команды через OLE интрефейс. Если MapInfo запущена не одна, то общение будет с последней запущенной программой (а может и с любой :? ).
doMapbasic_in_MapInfo.vbs.7z
(10.38 КБ) 203 скачивания
- выполняет любой текстовый файл, пересылая запсианные в нем простые (без циклов и условного оператора IF ) команды MapBasic в MapInfo. Ведет лог-файл выполняемых команд. Команды до выполнения отображаются в стандартном окне Mapinfo -> Message
mi_CloseAll.vbs.7z
Закрывает все открытые таблицы. Очень молчаливая программа.
(10.77 КБ) 190 скачиваний
mi_VBS.7z
(15.1 КБ) 212 скачиваний
mi_VBS.rar
(36.05 КБ) 348 скачиваний
  • mi_rebuild_Index.vbs - пересчет индекса у таблиц MapInfo. Использует запущенную версию MapInfo, что бы преобразовать индексирование таблицы. Помогает в случаях, когда рука отказывается долго нажимать на OK после сообщений о неверном индексе.
  • mi_tabFileInfo.vbs - вся существенная информация о таблице в тестовой строке, разделенной точкой с запятой (;)
  • mi_TabColsStr.vbs - список полей таблицы в тестовой строке, разделенной точкой с запятой (;)
  • mi_tabRasterReproject.vbs - пересчет координат привязки растрового файла из СК таблицы в новую, указанную в параметре вызова скрипта. В выходной таблице меняются координаты точек и строка проекции. Сам растр НЕ МЕНЯЕТСЯ.
PS
Это не самореклама, просто зачем объяснять то, что можно просто запустить из командной строки? :wink:

Аватара пользователя
Institor
Активный участник
Сообщения: 240
Зарегистрирован: 22 апр 2011, 08:10
Репутация: 27
Откуда: Хабаровск

Re: Мелкие полезности из командной строки

Сообщение Institor » 19 сен 2011, 03:03

Boris писал(а): mi_tabRasterReproject.vbs - пересчет координат привязки растрового файла из СК таблицы в новую, указанную в параметре вызова скрипта. В выходной таблице меняются координаты точек и строка проекции. Сам растр НЕ МЕНЯЕТСЯ
А будет ли оно работать с план-схемами?

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

Re: Мелкие полезности из командной строки

Сообщение Boris » 19 сен 2011, 10:42

В скрипте стоит запрет на пересчет Earth и NonEarth - т.к. это не имеет смысла. Прямого запрета на переход от одной плоской СК к другой нет. Другое дело, что я не пробовал, и не очень представляю как они могут различаться, без задания дополнительных параметров СК - отображений осей или аффинных трансформаций.

Аватара пользователя
Institor
Активный участник
Сообщения: 240
Зарегистрирован: 22 апр 2011, 08:10
Репутация: 27
Откуда: Хабаровск

Re: Мелкие полезности из командной строки

Сообщение Institor » 19 сен 2011, 15:15

Просто очень много растров привязано в координатах МСК, но NonEarth.
И очень много векторных данных в план-схеме (старая порочная практика). И куча утилит написана под план-схему для мапинфо.
Я себе это так представляю: замена в растре строчки NonEarth на соответствующую проекцию, пересчет в другую проекцию, замена строчки обратно на nonearth.
Вручную это сделать можно (таблица - растр - регистрация - выбрать нужную проекцию)

В принципе, можно строки заменить в том же Notepad++, так что вопрос был чисто риторический.

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

Re: Мелкие полезности из командной строки

Сообщение Boris » 19 сен 2011, 16:28

Можно все и из командной строки заменить. Я знаю как минимум одну утилиту замены, которая это, с оговорками, делает очень неплохо.

Аватара пользователя
Institor
Активный участник
Сообщения: 240
Зарегистрирован: 22 апр 2011, 08:10
Репутация: 27
Откуда: Хабаровск

Re: Мелкие полезности из командной строки

Сообщение Institor » 20 сен 2011, 03:53

А именно?

gamm
Гуру
Сообщения: 2536
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 517
Ваше звание: программист
Откуда: Казань

Re: Мелкие полезности из командной строки

Сообщение gamm » 20 сен 2011, 06:37

Institor писал(а):А именно?
sed

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

Re: Мелкие полезности из командной строки

Сообщение Boris » 20 сен 2011, 22:11

я имел в виду replacer, т.к. назвать SED утилитой "с оговорками", у меня просто не хватает терпения.
Оговорки состоят в том, что в целом утилита - волшебная, но логика ее поведения при режиме "MULTYREPLACE=YES" - мне не доступна. Но за пределами этих потуг - просто волшебная.

Gobi
Новоприбывший
Сообщения: 5
Зарегистрирован: 16 дек 2007, 09:29
Репутация: 0
Откуда: СПб

Re: Мелкие полезности из командной строки

Сообщение Gobi » 05 окт 2011, 00:58

Boris, захотелось и мне одну полезность...но doMapBasic_in_MapInfo отвечает ошибкой выполнения на мой txt-файл :cry: В логе пишет, что мол все хорошо, файл существует. MI95ru, Виста. Как бы это победить?
Изображение

Gobi
Новоприбывший
Сообщения: 5
Зарегистрирован: 16 дек 2007, 09:29
Репутация: 0
Откуда: СПб

Re: Мелкие полезности из командной строки

Сообщение Gobi » 05 окт 2011, 01:04

Что-то не получилось прицепить скрин. Напишу ошибку словами:
Сценарий: D\ПО\doVapBasic_in_MapInfo.vbs
Строка: 1472
Символ: 5
Ошибка: требуется объект
Код: 800A01A8
Источник: Ошибка выполнения Microsoft VBScript

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

Re: Мелкие полезности из командной строки

Сообщение Boris » 05 окт 2011, 11:02

нужен исходный файл с командами.
возможные варианты:
а) не запущена манифно - все скрипты подключаются к одной из запущенных версий
б) русские буквы - т.к. все запускается из командной строки, то имеет кодировку DOS866, а маинфо использует Win1251 - короче, не любит русские буквы.
остальное надо смотреть команды

Gobi
Новоприбывший
Сообщения: 5
Зарегистрирован: 16 дек 2007, 09:29
Репутация: 0
Откуда: СПб

Re: Мелкие полезности из командной строки

Сообщение Gobi » 05 окт 2011, 20:02

Мапинфо запущена, кирилицы нет, а команды...упростила до просто открытия таблицы.
Командная строка выглядит так: D:\ZZZ\doMapbasic_in_Mapinfo.vbs "MB.txt",
в файле:
Open Table "D:\ZZZ\Itog.TAB" Interactive
Map From Itog
Может гадина-Виста? UAC отключен. И еще...у меня на компе установлены две версии MI.
10 - в папке Mapifo, 95 - в другой по соседству. Не влияет? Работаю в 95, 10-ка что-то валится.

Gobi
Новоприбывший
Сообщения: 5
Зарегистрирован: 16 дек 2007, 09:29
Репутация: 0
Откуда: СПб

Re: Мелкие полезности из командной строки

Сообщение Gobi » 05 окт 2011, 22:22

На десятке пошло. Спасибо-спасибо-спасибо

Старый Йети
Активный участник
Сообщения: 170
Зарегистрирован: 06 дек 2011, 07:21
Репутация: 19
Откуда: г. Ухта, республика Коми

Re: Мелкие полезности из командной строки

Сообщение Старый Йети » 15 фев 2012, 15:12

to Boris
СПАСИ!!!
Добрый день. Очень бы хотелось воспользоваться утилитой mi_rebuild_Index.vbs, да вот файлик mi_VBS.7z, видимо, с ошибкой качается. Во всяком случае, пробую открывать его в WinRAR'e, пишет "Неизвестный метод в mi_rebuild_Index.vbs" и далее "Ошибка - сбой при операции". За долгое время работы с MI
в разных версиях скопилась немалая такая куча tab-файлов старых версий. Сейчас перешли на законную 10.5 ru так рука отсыхает на клавишу Enter жать.
Пользую Windows XP SP3, WinRAR 3.8... может в версии дело? :)
Заранее, по-любому СПАСИБО!
Вложения
FromRAR.jpg
Вот окно WinRAR'a? смущает, что последние 3 файла как-то странно сжаты
FromRAR.jpg (60.24 КБ) 6891 просмотр
_____________________________________________
старый и дремучий, но всё же искренне ваш - Йети

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

Re: Мелкие полезности из командной строки

Сообщение Boris » 15 фев 2012, 21:13

вставил rar архив. Но лучше иметь бесплатный 7z, что бы распаковывать файлы, http://7-zip.org.ua/ru/7z.html
Что забавно, RAR С опцией максимальное сжатие дал файл в 2 раза больше, чем 7z без всяких установок, а RAR с обычными - 4 раза крупней вышел :shock:

Ответить

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