Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
sysrepos
Зарегистрирован: 22.10.2012 Сообщения: 39
|
Добавлено: Пн Фев 18, 2013 6:38 pm Заголовок сообщения: помогите с run command |
|
|
не получается выполнить команду run command. Не могу понять в чем ошибка. Программа должна сохранять все выбранные таблицы в заданную проекцию.
for i=1 to numtables()
nt=text(i) 'массив, заполненный именами таблиц
pro="zona_"+ text(i) 'zona чтобы новые сохр. таблицы начинались со слова zona
cmnd="Commit Table nt As pro TYPE NATIVE CoordSys Earth Projection 1, 0 Interactive"
note cmnd
Interactive
run command cmnd
next
Пишет ошибку "Не определена переменная или поле"
Если то же самое делать без run command, то все получается.
(хочу использовать run command, что бы потом можно было выбирать проекцию в окне выбора, но пока даже так не работает, хотя в справке написано что текстовые переменные можно использовать) |
|
Вернуться к началу |
|
|
thegeo
Зарегистрирован: 17.01.2012 Сообщения: 119
|
Добавлено: Вт Фев 19, 2013 11:55 am Заголовок сообщения: |
|
|
Попробуйте так:
...
nt=text(i)
pro="""c:\zona_"+ text(i) & """
cmnd="Commit Table " & nt & " As " & pro & " TYPE NATIVE CoordSys Earth Projection 1, 0 Interactive"
run command cmnd
... |
|
Вернуться к началу |
|
|
sysrepos
Зарегистрирован: 22.10.2012 Сообщения: 39
|
Добавлено: Вт Фев 19, 2013 1:08 pm Заголовок сообщения: |
|
|
сохранил 1 файл как zona_+ text(i) & ...
что означает &? в справке не нашел ничего |
|
Вернуться к началу |
|
|
thegeo
Зарегистрирован: 17.01.2012 Сообщения: 119
|
Добавлено: Вт Фев 19, 2013 1:28 pm Заголовок сообщения: |
|
|
Посмотрите в справке "Работа со строками".
Символ & является оператором конкатенации (объединения) двух строк. В MB для этих целей также допустимо использование оператора +.
Подправьте в предыдущем коде
pro="""" & "c:\zona_" & nt & """"
(внимание на число обрамляющих кавычек) |
|
Вернуться к началу |
|
|
sysrepos
Зарегистрирован: 22.10.2012 Сообщения: 39
|
Добавлено: Вт Фев 19, 2013 2:26 pm Заголовок сообщения: |
|
|
спасибо, разобрался. Я правда решил это вот так:
nt=chr$(34)+text(i)+chr$(34) ' chr$(34) символ ковычки
pro=chr$(34)+"zona_"+ text(i)+chr$(34)
cmd="Commit Table "+ nt +" As " + pro + " TYPE NATIVE "+ strp+" Interactive"
run command cmd
Ваш вариант тоже работает.
Странно только почему """" возвращают одну кавычку
""-возвращают пробел
"+"-возвращают символ
логично было бы что кавычку должны возвращать три кавычки """
А четыре кавычки должны бы были возвращать пробел. |
|
Вернуться к началу |
|
|
Sibit
Зарегистрирован: 10.12.2012 Сообщения: 10
|
Добавлено: Ср Фев 27, 2013 5:12 am Заголовок сообщения: |
|
|
sysrepos писал(а): |
Странно только почему """" возвращают одну кавычку
|
Наоборот, все логично. Кавычка в строке обозначается двойной кавычкой. Станьте на место компилятора т представте как будете разбирать строку:
Код: |
"bla-bla-bla ""В кавычках надпись"" bla-bla-bla "
|
или
Код: |
"до кавычки надпись "" после кавычки надпись "
|
Соответственно вариант """" - тот же второй вариант , но с пустыми строками до и после кавычки.
sysrepos писал(а): |
""-возвращают пробел
|
?? Пустую строку вроде возвращать должен |
|
Вернуться к началу |
|
|
|