Форум

им. Зелёного Батискафа

АвторСообщение



Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 15.04.13 16:58. Заголовок: Скрипт Surfer для конвертации гридов


'Первый опыт скрипта для Сёрфера. Ввиду отсутствия необходимых знаний и ограничений языка сплошь костыли да подпорки.
'Скрипт предназначен для конвертации всех сёрфовских гридов в исходной папке в формат "GS ASCII"
'При запуске необходимо выбрать один из файлов в исходной папке.
'В исходной папке будет создана папка ASCII куда будут помещены конвертированные файлы.
'Если папка ASCII уже существует, файлы в ней, при совпадении имён будут переписаны.
 
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


Спасибо: 0 
Цитата Ответить
Новых ответов нет


Ответ:
1 2 3 4 5 6 7 8 9
видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  5 час. Хитов сегодня: 1
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет



Создай свой форум на сервисе Borda.ru
Текстовая версия