Использование WaterSteamPro в WSH (Windows Scripting Host)

Windows Scripting Host – это технология создания программ в Windows с использованием скриптовых языков. Она явилась на смену bat файлам из MS-DOS. В стандартной поставке Windows 98 входят два скриптовых языка: JScript (аналог JavaScript) и VBScript (Visual Basic Scripting Edition). Программа для WSH представляет собой текстовый файл, который хранит программу, написанную на языке, поддерживаемом WSH.

Далее приведено содержимое двух файлов для WSH, написанных на JScript и VBScript, в которых производится вычисление удельных объема, энтальпии и энтропии для точки с давлением и температурой, задаваемыми в качестве аргументов при вызове файла-программы. При отсутствии аргументов вычисляются значения для параметров по умолчанию. В противном случае первый аргумент – давление (Па), а второй – температура (К).

Файл "WaterSteamPro.js", язык программирования – JScript:

var wsp = WScript.CreateObject("WSP.WSPCalculator");
var wshshell = WScript.CreateObject("WScript.Shell")
if (! wsp)
{
   wshshell.Popup('Error with creating ActiveX object!',0,'',0)
   WScript.Quit();
}else
{
   var arg = WScript.Arguments;
   var p = 1000000;
   var t = 400;
   if (arg.length > 1)
   {
      p = arg.Item(0);
      t = arg.Item(1);
   }else
   {
      wshshell.Popup('Arguments absent. Loaded default values!',0,'',0);
   };
   var v = wsp.wspVPT(p, t);
   var s = wsp.wspSPT(p, t);
   var h = wsp.wspHPT(p, t);
   wshshell.Popup('P='+p+'Pa;T='+t+'K;V='+v+'m3/kg;S='+s+'J/kg*K;H='+h+'J/kg',0,'',0);
}

В данном примере используется подход, описанный в разделе "Использование "WaterSteamPro" в Microsoft Excel" с обращением к функции "CreateObject", поэтому описывать пример досконально не будем, а остановимся только на общих деталях.

В первых строках производится создание двух объектов, один из которых служит для доступа к функциям для расчета свойств воды и водяного пара, а второй – для вывода сообщений. После этого проверяется был ли создан объект "WSP.WSPCalculator" и в противном случае выводится предупреждающее сообщение и программа завершает работу. Если экземпляр объекта был создан успешно, то создаются: переменная "arg" с коллекцией аргументов при вызове файла (указываемых в командной строке), две переменные со значениями расчетных параметров по умолчанию (для давления "p" – это 1000000, а для температуры "t" – 400). После этого проверяется на количество аргументов и если их число больше единицы (два и больше), то в переменные "p" и "t" заносятся соответственно первый и второй аргументы (их номера – ноль и единица). В противном случае выводится сообщение, что аргументы отсутствуют и используются значения по умолчанию. На следующем шаге производится обращение к методам созданного объекта "wsp" (с типом "WSP.WSPCalculator"), которые озвращают значения удельных объема, энтропии и энтальпии. Завершает программу вывод сообщения с полученными результатами расчетов.

Рассмотрим файл "WaterSteamPro.vbs", язык программирования – VBScript. Алгоритм программы полностью идентичен описанному выше, а все отличия связаны только со спецификой языка программирования:

Set wsp = WScript.CreateObject("WSP.WSPCalculator")
Set wshshell = WScript.CreateObject("WScript.Shell")
if Not IsObject(wsp) Then
   wshshell.Popup "Error with creating ActiveX object!",0,"",0
   WScript.Quit
Else
   Set arg = WScript.Arguments
   Dim p
   p = 1000000
   Dim t
   t = 400
   if arg.length > 1 Then
      p = arg.Item(0)
      t = arg.Item(1)
   else
      wshshell.Popup "Arguments absent. Loaded default values!",0,"",0
   End if
   dim v
   v = wsp.wspVPT(p, t)
   dim s
   s = wsp.wspSPT(p, t)
   dim h
   h = wsp.wspHPT(p, t)
   wshshell.Popup "P=" & p & ";T=" & t & ";V=" & v & ";S=" & s & ";H=" & h & "”,0,"",0
end if