Форум » Программистские штучки » Скрипт Surfer для конвертации гридов » Ответить

Скрипт Surfer для конвертации гридов

Проползший: 'Первый опыт скрипта для Сёрфера. Ввиду отсутствия необходимых знаний и ограничений языка сплошь костыли да подпорки. 'Скрипт предназначен для конвертации всех сёрфовских гридов в исходной папке в формат "GS ASCII" 'При запуске необходимо выбрать один из файлов в исходной папке. 'В исходной папке будет создана папка ASCII куда будут помещены конвертированные файлы. 'Если папка ASCII уже существует, файлы в ней, при совпадении имён будут переписаны. [pre2] Option Explicit Sub Main Dim InFile As String 'Путь к первому файлу Dim t(1) As Integer 'Положение слэша Dim ttt As String 'Имя файлов в папке Dim aaa As String 'Имя папки On Error Resume Next 'Так, конечно, лучше не делать, но иначе выскакивает ошибка, если папка ASCII ужк существует InFile = GetFilePath("","grd","d:\", "Выберите файлы для конвертации", 0) 'Диалоговое окно выбора одного из файлов в целевой папке If InFile = "" Then End 'Выход из программы, если ничего не выбрано 'Вииду не знания способа получить названия папки из полного пути к файлу, действуем "влоб", через поиск последнего слэша Do t(1)=t(0) t(0)=InStr(t(0)+1,InFile,"\") Loop While t(0)>0 t(0)=Len(InFile) aaa=Left(InFile,t(1)) 'Путь к папке ttt=Dir(aaa) 'Имя первого файла в папке If ttt = "" Then End 'Так, на всякий случай MkDir aaa + "ASCII" 'Создали папку для выходных файлов Do If Right(ttt,4) = ".grd" Then Call bin2ASCII(aaa,ttt) 'Если файл имеет расширение grd отправляем его на конвертацию ttt=Dir 'Имена последующих файлов Loop Until ttt="" 'Цикл идёт до последнего файла MsgBox "Готово!" End Sub '------------------------------------------------------------------------------------------------------------------------------- Sub bin2ASCII(path_fold,path_fl) Dim ln As Integer Dim path_grd_out As String Dim surf As Object Dim path_grd As String path_grd=path_fold +path_fl 'Добавляем к имени файла обозначение ASCII If Right(path_fl,4) = ".grd" Then ln=Len(path_fl) path_grd_out=path_fold + "ASCII\" + Left(path_fl,ln-4) + "_ASCII.grd" Else path_grd_out=path_fold + "ASCII\" + path_fl + "_ASCII" End If 'Кусок скопирован из справки, не до конца вкурил что для чего Set surf = GetObject(,"Surfer.Application") If Err.Number<>0 Then Set surf = CreateObject("Surfer.Application") End If surf.GridConvert (InGrid := path_grd, _ OutGrid := path_grd_out, _ OutFmt := srfGridFmtAscii) End Sub [/pre2]

Ответов - 0



полная версия страницы