Tab.Compare

From SunFlurry wiki
Jump to: navigation, search
  Compare (Сравнение таблиц)
Объект:Таблица
Статус разработки: Реализована
Тип:Функция
Обращение к БД:Нет
Исключения:невозможно превратить в строку, неверный аргумент
Визуальность:Нет

Функция сравнивает текущую таблицу с заданной по указанным правилам, и возвращает 1, если таблицы эквивалентны. Функция проверяет, что количество столбцов, их порядок, их наименования, порядок строк и каждая ячейка в каждой строке одной таблицы соответствует второй.

Синтаксис

Tab.Compare(<Таблица для сравнения (TAB)>,<Столбцы для сравнения (STRING)>):<Сравниваемая таблица совпадает с текущей (INT)>

Аргументы

  • <Таблица для сравнения (TAB)> - Таблица, с которой будет происходит сравнение текущей таблицы.
  • <Столбцы для сравнения (STRING)> - (необязательный аргумент) Аргумент содержит список наименований столбцов, которые будут использоваться при сравнении. Наименования разделены запятыми. Если аргумент не задан, будут сравниваться все столбцы, при этом порядок столбцов первой и второй таблицы должен совпадать, иначе функция возвратит 0. Если аргумент задан, будут сравниваться только указанные столбцы, при этом порядок следования столбцов в первой и второй таблицах не будет проверяться на совпадение.

Возвращаемое значение

Возвращает 1, если таблицы совпадают с точки зрения режима сравнения функции, 0 -- в ином случае.

Примеры

//Создается и заполняется таблица значений
aTab:=Tab.Create("b1,b2,b3,b4");

aTab.AddLine("b1,b2,b3,b4",1,2,3,4);
aTab.AddLine("b1,b2,b3,b4",2,2,3,33);
aTab.AddLine("b1,b2,b3,b4",3,5,5,4);
aTab.AddLine("b1,b2,b3,b4",4,2,3,4);
aTab.AddLine("b1,b2,b3,b4",4,2,3,77);
aTab.AddLine("b1,b2,b3,b4",5,2,3,4);

//Создаем копию текущей таблицы
bTab:=aTab.Copy();

Message("Таблицы aTab и bTab "+?(aTab.Compare(bTab),"совпадают","не совпадают"));
//Будет выведено "Таблицы aTab и bTab совпадают"

//Сдвигаем строку 1 таблицы bTab на две строки вниз.
bTab.Move(1,2);

Message("Таблицы aTab и bTab "+?(aTab.Compare(bTab),"совпадают","не совпадают"));
//Будет выведено "Таблицы aTab и bTab не совпадают"