Всем добрый день. Есть следующий вопрос: как бы вы реализовали на бейсике т.н. алгоритм "отсутствия присутствия?" (т.е. алгоритм по проверке, присутствует ли некоторый элемент в заданном множестве).
По моим представлениям, "самый красивый вариант" выглядел бы так (на примере проверки, есть ли таблица с заданным именем в базе):
Public Function TableID(TableName As String) As Integer
TableID = 0
While (TableID <= CurrentDb.TableDefs.Count - 1) And (CurrentDb.TableDefs(TableID).Name <> TableName)
TableID = TableID + 1
Wend
TableID = IIf(TableID = CurrentDb.TableDefs.Count, 0, TableID)
End Function
|
Проблема в следующем. На другом языке этот алгоритм сработал бы отлично, но в бейсике не работает, т.к. второе условие в while проверяется даже при невыполнении первого, и появляется ошибка об отсутствующем элементе в семействе.
Как бы Вы реализовали данную проверку?
P.S. Интересует не решение этой конкретной задачи, а "красивый" с вашей точки зрения алгоритм. Спасибо :)