Быстрое конвертирование открытой карты в другой формат
Сохраняет открытую карту в другой формат (по выбору: xml, dxf, dwg, in4, shp, mid/mif), закрывает текущее окно и открывает вновь созданный файл.
$M=@Map.Modified
@If $M=1 @Break Сохраните текущие изменения
$S=@Map.ClearFilename
$E=@Dialog.Select Сохранить как|xml|dxf|dwg|in4|shp|mif
@If $E= then @Break
$S=$S.$E
@Map.SaveToFile $S
$FE=@FileExists $S
@If $FE=0 @Break
@CloseMap
@FileOpen $S
Примечание: Если вам не нужно закрытие текущей карты и открытие новой, то удалите четыре последние строчки скрипта после команды @Map.SaveToFile $S. Вы также можете изменить список форматов в четвертой строке, оставив только необходимые вам или, наоборот, добавив новые.
Конвертирование всех открытых карт в формат DXF
$C=@MapCount
$I=0
%Start
$I=$I+1
@If $I>$C then @Break
$F=@Map[$I].ClearFilename
@Map[$I].SaveToFile $F.dxf
@Goto %Start
Примечание: Для конвертирования в любой другой формат, замените dxf на нужное расширение в предпоследней строке скрипта.
Конвертирование всех карт в папке в другой формат
Когда карт слишком много и открыть их все одновременно не получается, можно использовать скрипт, который по очереди откроет все файлы из заданной папки и сохранит в другой формат.
$Filter=*.dmf
$F=@Dialog.SelectFolder Укажите папку с картами
@Text.FolderList $Filter $F
$C=@Text.Count
@If $C=0 @Break В папке “$F” отсутствуют файлы $Filter
$I=0
%Start
$I=$I+1
@If $I>$C then @Break
$F=@Text.Line[$I]
@FileOpen $F
$F=@Map.ClearFilename
@Map.SaveToFile $F.dxf
@CloseMap
@Goto %Start
Примечание: Скрипт ищет и конвертирует все DMF файлы в указанной папке. Если исходные файлы в другом формате, замените фильтр в первой строке скрипта (например $Filter=*.in4 или $Filter=.). Для конвертирования не в DXF, а в другой формат, замените dxf на другое расширение в третьей с конца строке скрипта. Если необходимо обработать файлы не только в указанной папке, но и во всех ее подпапках, то вместо функции @Text.FolderList можно использовать @Text.FolderListTree.