Страница 1 из 1

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

Добавлено: 28 июл 2014, 15:04
WeMaN
Помогите, люди добрые, только осваиваю MapBasic, собственно есть такой код

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

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

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

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

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

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

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

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

Добавлено: 28 июл 2014, 15:27
sysrepos
ну если прям ответ на ваш вопрос, то так

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

    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

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

Добавлено: 28 июл 2014, 15:47
WeMaN
Спасибо огромное!