Использование WSH для отбора уникальных записей в RSL

Измайлов Феликс Если Вам срочно понадобилось отобрать уникальные записи, но, при этом, не хочется прибегать к созданию файла/словаря (с убранным флагом на ключе Duplicate), то можно воспользоваться следующим объектом WSH - Dictionary. Нас будут интересовать следующие методы Add(key,value), Exists(key), и свойство - Count, Keys. Возьмем в качестве примера, абстрактную задачу, отобрать среди проведенных документов уникальных плательщиков.

import rslx;
file doc(document);
/* Создаем объект */
d=ActiveX("Scripting.Dictionary");

While(next(doc))
	if(not d.Exists(doc.Real_Payer)) // Если такого счета 
				 //еще в словаре нет
		d.Add(doc.Real_Payer,1);
		/* Второй параметр - value, которое ставится в 
		зависимость key. В нашем случае value неважно, 
		поэтому можно ставить ЛЮБОЕ значение */
	end;
end;
/* Поcле окончания цикла в словаре ТОЛЬКО уникальные значения 
Real_Payer. Как их вывести? */
i=0;
a = d.Keys; // Получили массив ключей
While(i < d.Count)
	println(a(i)); // выводим 
	i=i+1;
end;

Пример снабжен большим количеством комментариев, подробно описывающих способы использования Windows Script Host при работе из RSL.

Tags: