Оператор "ЕСЛИ" в MapBasic или как то так

MapInfo, MapBasic
Ответить
Аватара пользователя
WeMaN
Завсегдатай
Сообщения: 310
Зарегистрирован: 16 фев 2009, 10:49
Репутация: 0

Оператор "ЕСЛИ" в MapBasic или как то так

Сообщение WeMaN » 28 июл 2014, 15:04

Помогите, люди добрые, только осваиваю MapBasic, собственно есть такой код

Код: Выделить всё

Alter Table "Грунт" ( drop Код_классификатора ) Interactive

Alter Table "Растительность" ( drop Код_классификатора ) Interactive

Alter Table "Дороги" ( drop Код_классификатора ) Interactive
Он в таблице Грунт, Растительность и Дороги, удаляет колонку "Код_классификатора".
Создаю mbx все работает, но если нет таблицы "Грунт" программа перестаёт работать, пишет что нету таблицы "Грунт" и дальше не проверяет.
Помню из курсов программирования ещё по универу, что есть что то наподобие оператора ЕСЛИ, т.е. он смотрит если "Грунт" нет, переходит дальше, а не останавливается как это происходит сейчас.
Вопрос, не подскажите есть ли что то подобное в МапБэйсик, может там не так всё сложно как мне кажется?
Суть в том, чтобы при отсутствии таблицы "Грунт" программа не прерывалась...

Спасибо за внимание.

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 792
Ваше звание: званий не имею
Откуда: Москва

Re: Оператор "ЕСЛИ" в MapBasic или как то так

Сообщение Александр Мурый » 28 июл 2014, 15:07

А почему бы сразу не посмотреть в документацию по MapBasic, которая открыто лежит на офиц.сайте? Там всё есть.
Редактор материалов, модератор форума

sysrepos
Активный участник
Сообщения: 128
Зарегистрирован: 07 окт 2012, 16:25
Репутация: 20
Откуда: Москва

Re: Оператор "ЕСЛИ" в MapBasic или как то так

Сообщение sysrepos » 28 июл 2014, 15:27

ну если прям ответ на ваш вопрос, то так

Код: Выделить всё

    dim i as integer
    dim str() as string
    dim koltab as integer


    koltab=NumTables( )

    for i=1 to koltab 'цикл записывает в массив все открыте таблицы
       str(i)=tableInfo(i,TAB_INFO_NAME)
    next

    for i=1 to koltab 'цикл, проверяет, открыта ли нужная таблица
       if str(i)="Грунт" then 'если открыта таблица Грунт, тогда удалить колонку   
       Alter Table "Грунт" ( drop Код_классификатора ) Interactive
       end if
    next

    for i=1 to koltab
       if str(i)="Растительность" then
       Alter Table "Растительность" ( drop Код_классификатора ) Interactive
       end if
    next

если просто удалить у всех открытых таблиц заданную колонку, то так

Код: Выделить всё

    dim i as integer
    dim str() as string
    dim koltab as integer

    koltab=NumTables( )
    redim str(koltab)

    for i=1 to koltab 'цикл записывает в массив все открыте таблицы
       str(i)=tableInfo(i,TAB_INFO_NAME)
       Alter Table str(i) (drop Код_классификатора) Interactive
    next

Аватара пользователя
WeMaN
Завсегдатай
Сообщения: 310
Зарегистрирован: 16 фев 2009, 10:49
Репутация: 0

Re: Оператор "ЕСЛИ" в MapBasic или как то так

Сообщение WeMaN » 28 июл 2014, 15:47

Спасибо огромное!

Ответить

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

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

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