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

MapInfo, MapBasic
Boris
Гуру
Сообщения: 4231
Зарегистрирован: 10 апр 2006, 22:34
Репутация: -344969098
Откуда: Париж

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

Сообщение Boris »

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

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

Сообщение Institor »

Boris писал(а): mi_tabRasterReproject.vbs - пересчет координат привязки растрового файла из СК таблицы в новую, указанную в параметре вызова скрипта. В выходной таблице меняются координаты точек и строка проекции. Сам растр НЕ МЕНЯЕТСЯ
А будет ли оно работать с план-схемами?
Boris
Гуру
Сообщения: 4231
Зарегистрирован: 10 апр 2006, 22:34
Репутация: -344969098
Откуда: Париж

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

Сообщение Boris »

В скрипте стоит запрет на пересчет Earth и NonEarth - т.к. это не имеет смысла. Прямого запрета на переход от одной плоской СК к другой нет. Другое дело, что я не пробовал, и не очень представляю как они могут различаться, без задания дополнительных параметров СК - отображений осей или аффинных трансформаций.
Аватара пользователя
Institor
Активный участник
Сообщения: 243
Зарегистрирован: 22 апр 2011, 08:10
Репутация: 27
Откуда: Хабаровск

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

Сообщение Institor »

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

В принципе, можно строки заменить в том же Notepad++, так что вопрос был чисто риторический.
Boris
Гуру
Сообщения: 4231
Зарегистрирован: 10 апр 2006, 22:34
Репутация: -344969098
Откуда: Париж

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

Сообщение Boris »

Можно все и из командной строки заменить. Я знаю как минимум одну утилиту замены, которая это, с оговорками, делает очень неплохо.
Аватара пользователя
Institor
Активный участник
Сообщения: 243
Зарегистрирован: 22 апр 2011, 08:10
Репутация: 27
Откуда: Хабаровск

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

Сообщение Institor »

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

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

Сообщение gamm »

Institor писал(а):А именно?
sed
Boris
Гуру
Сообщения: 4231
Зарегистрирован: 10 апр 2006, 22:34
Репутация: -344969098
Откуда: Париж

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

Сообщение Boris »

я имел в виду replacer, т.к. назвать SED утилитой "с оговорками", у меня просто не хватает терпения.
Оговорки состоят в том, что в целом утилита - волшебная, но логика ее поведения при режиме "MULTYREPLACE=YES" - мне не доступна. Но за пределами этих потуг - просто волшебная.
Gobi
Новоприбывший
Сообщения: 5
Зарегистрирован: 16 дек 2007, 09:29
Репутация: 0
Откуда: СПб

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

Сообщение Gobi »

Boris, захотелось и мне одну полезность...но doMapBasic_in_MapInfo отвечает ошибкой выполнения на мой txt-файл :cry: В логе пишет, что мол все хорошо, файл существует. MI95ru, Виста. Как бы это победить?
Изображение
Gobi
Новоприбывший
Сообщения: 5
Зарегистрирован: 16 дек 2007, 09:29
Репутация: 0
Откуда: СПб

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

Сообщение Gobi »

Что-то не получилось прицепить скрин. Напишу ошибку словами:
Сценарий: D\ПО\doVapBasic_in_MapInfo.vbs
Строка: 1472
Символ: 5
Ошибка: требуется объект
Код: 800A01A8
Источник: Ошибка выполнения Microsoft VBScript
Boris
Гуру
Сообщения: 4231
Зарегистрирован: 10 апр 2006, 22:34
Репутация: -344969098
Откуда: Париж

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

Сообщение Boris »

нужен исходный файл с командами.
возможные варианты:
а) не запущена манифно - все скрипты подключаются к одной из запущенных версий
б) русские буквы - т.к. все запускается из командной строки, то имеет кодировку DOS866, а маинфо использует Win1251 - короче, не любит русские буквы.
остальное надо смотреть команды
Gobi
Новоприбывший
Сообщения: 5
Зарегистрирован: 16 дек 2007, 09:29
Репутация: 0
Откуда: СПб

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

Сообщение Gobi »

Мапинфо запущена, кирилицы нет, а команды...упростила до просто открытия таблицы.
Командная строка выглядит так: 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 »

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

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

Сообщение Старый Йети »

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... может в версии дело? :)
Заранее, по-любому СПАСИБО!
Вложения
Вот окно WinRAR'a? смущает, что последние 3 файла как-то странно сжаты
Вот окно WinRAR'a? смущает, что последние 3 файла как-то странно сжаты
FromRAR.jpg (60.24 КБ) 17854 просмотра
_____________________________________________
старый и дремучий, но всё же искренне ваш - Йети
Boris
Гуру
Сообщения: 4231
Зарегистрирован: 10 апр 2006, 22:34
Репутация: -344969098
Откуда: Париж

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

Сообщение Boris »

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

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

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость