EBSILON®Professional Online Documentation
EbsScript 脚本 / EbsScript 函数 / 外部输入 / 输出函数
本主题中
    外部输入 / 输出函数
    本主题中

    外部输入 / 输出函数

     

    这些函数提供了对 EBSILONProfessional 数据接口的访问。一般来说,它们可以在 EBSILONProfessional 性能优化系统(EPOS)中用于与流程或数据库进行数据交换(见标准 Excel 接口的 Excel 函数)。

    用户-DLL 函数可用于输入和输出。

    用户-Excel 和 ASCII-接口有不同的输入和输出函数。这些函数的作用与图形用户界面相对应,但有以下区别

    重要提示:"readInputFile"和"readUserExcel"在测量值方面的表现不同。当使用"readInputFile"时,文件必须包含一套完整的测量值(组件 46)。缺少的值在文件中被设置为空白。当使用"readUserExcel"时,只有那些在文件中可用的值被替换。文件中缺少的值保持不变。

    名称

    目的

    参数 

    返回值 

    例子

    callEbsScriptServer

    在 ATL 接口的范围内调用用户定义的 DLL,通常是为了打开一个输入参数的对话框。

    1: STRING:
    DLL-Name.Methode

    2: 任何类型:
    第一参数

    3: 任何类型:
    第二参数

    4: 程序
    由 DLL 调用的回调程序

    BOOLEAN:

    true: 没有问题
    false: 错误

    callEbsScriptServer( "CoalSelection.Input", strCoalNameField, r2, procInit );

    callUserDll

    简单调用用户 DLL,没有额外的参数

    1: INTEGER: 用户 DLL 中的程序 ID

    INTEGER,
    如用户 DLL 设置

    callUserDll(2);

    callUserDllArgs

    调用带有三个额外参数的用户 DLL

    1:INTEGER: 用户 DLL 中的程序 ID

    2:INTEGER

    3:REAL

    4:STRING

    INTEGER,
    如用户 DLL 设置

    callUserDll(1, 3, 7.5, "d:\\temp\\out.txt"); 

    eposReadAverage FromArchive

    如"ReadAverageFrom Archive"一样,但使用动态数组。

    1: REAL: 平均化的开始时间

    2: REAL: 平均化的结束时间

    3: PointFilter 数组:

    4: BOOLEAN: 见 "ReadAverageFromArchive"
     

    INTEGER:

     

    eposReadAverage FromArchiveForOneId

    如"ReadAverageFrom ArchiveForOneId"一样,但使用动态数组。

     

    1: INTEGER:
    档案的 ID

    2: REAL: 平均化的开始时间

    3: REAL: 平均化的结束时间

    4: PointFilter 数组:

    5: BOOLEAN:  见 "ReadAverageFromArchive"
     

    INTEGER:

     

     

    eposReadAverage Trend

    如"ReadAverageTrend"一样,但使用动态数组。

     

    1: STRING
    数据点的名称

    2: REAL: 整个趋势的开始时间

    3: REAL: 整个趋势的结束时间

    4: REAL: 平均的间隔(时间步长)

    5: PointFilter 数组:

    6: ValueAtTime 数组
     

    INTEGER:

     

    eposReadTrend FromArchive

    如"ReadTrendFrom Archive"一样,但使用动态数组。

     

    1: STRING
    数据点的名称

    2: REAL: 整个趋势的开始时间

    3: REAL: 整个趋势的结束时间

    4: ValueAtTime 数组

    INTEGER:

     

    getEposArchiveId

    检索为考虑的数据点配置的 EposArchive Id

    1:EBSCLASS: 考虑的 Ebsilon 对象

    INTEGER: EposArchive Id

    id:=getEposArchiveId (TestDP_S1.MEASM);

    getSRxInfo

    检索存储在 Ebsilon 中的指定点的配置数据(SRx-标签, SRx- 档案, 读出和写入标签)

    1:EBSCLASS: Ebsilon 考虑中的对象(数据点)

    2:BOOLEAN:
    true: 数据点被配置用于读出
    false: 数据点没有被配置用于读出

    3:BOOLEAN:
    true: 数据点被配置用于写入
    false: 数据点没有被配置用于写入

    4:STRING: 数据点的 SRx 标签

    5:strArchives: SRx 档案

    BOOLEAN:
    true: 没有问题
    false: 错误

    ePoint:=Test_DP009.RESULT;

    bOk:=getSRxInfo (ePoint, bRead, bWrite, strTag, strArchives);

    playSound

    播放一个 .wav 文件,例如用于宣布指令

    1:STRING:
    声音文件的路径或声音系统的名称

    2:BOOLEAN:
    true: 同步 (EbsScript 的执行只在播放结束后继续)
    false:(默认设置,EbsScript 在播放过程中继续执行)

    3:BOOLEAN:
    true: 播放是永久重复的(直到下一个有空白路径的 playSound 调用)
    false(默认设置):播放一次

    4:BOOLEAN:
    true: 1.参数总是被解释为文件名
    false (默认设置): 1.参数可以是一个文件或一个系统声音

    BOOLEAN:
    true: 没有问题
    false: 错误

    playSound ("C:\\Temp\\Hallo.wav");

    readAverageFrom Archive

    利用这个函数,可以从 EposArchive 加载一段时期内确定的数据集。

    在平均化的同时,也可以使用过滤器。对于每个过滤器,需要指定点的名称、下限、上限、与前一个时间点的最大相对偏差和一个过滤器 ID。通过过滤器 ID,可以实现 AND 或 OR 连接:所有具有相同 ID 的过滤器用 OR 连接,具有不同 ID 的过滤器用 AND 连接。

    在这里的例子中,对发电机功率 BAA20CE003A.MEASM 和计算状态 @model.iStatus 进行每小时均值计算。
    只有那些计算状态 <= 6,发电机功率高于 90 MW,并且在过去5分钟内发电机功率变化不超过 3% 的数据集才被用于平均。

    1: REAL: 平均化的开始时间

    2: REAL: 平均化的结束时间

    3: INTEGER: 过滤判据的数量

    4: STRING: 过滤值的名称字段

    5: REAL: 允许的下限字段

    6: REAL: 允许的上限字段

    7: REAL: 与前一个数据集的最大允许偏差的字段

    8: INTEGER: 过滤器 ID 的字段(见左边)

    9: BOOLEAN:
    true = 在读取之前,所有的测量点都被设置为"空"。如果测量点在档案中丢失,它们将保持为空。
    false = 测量点不被设置为"空",如果测量点在档案中缺失,它们将具有其先前的值。

    INTEGER:

    用于平均化的数据集的数量

    var

        rStartTime:real;

        rStopTime:real;

        nFilterSize:integer;

        arstrFilterPointNameArray:array[0..3] of string;

        arrFilterLowLimitArray:array[0..3] of real;

        arrFilterHighLimitArray:array[0..3] of real;

        arrFilterDeviationArray:array[0..3] of real;

        arnFilterIdArray:array[0..3] of integer;

        nRet:integer;

    begin

        rStartTime:=convertTime ("25.04.2003 08:00");

        rStopTime:=convertTime ("25.04.2003 09:00");

        nFilterSize:=2;

        arstrFilterPointNameArray[0]:= "@model.iStatus";

        arrFilterLowLimitArray[0]:=0;

        arrFilterHighLimitArray[0]:=6;

        arrFilterDeviationArray[0]:=-1;

        arnFilterIdArray[0]:=1;

        arstrFilterPointNameArray[1]:=

                                    "BAA20CE003A.MEASM";

        arrFilterLowLimitArray[1]:=90000;

        arrFilterHighLimitArray[1]:=-1;

        arrFilterDeviationArray[1]:=0.03;

        arnFilterIdArray[1]:=2;

        nRet:=readAverageFromArchive (rStartTime,

                     rStopTime, nFilterSize,

                     arstrFilterPointNameArray,

                     arrFilterLowLimitArray,

                     arrFilterHighLimitArray,

                     arrFilterDeviationArray,

                     arnFilterIdArray );

        print ("readAverageFromArchive liefert ",nRet,"\n");

        print ("BAA20CE003A.MEASM = ",

                 BAA20CE003A.MEASM,

               " @model.iStatus = ",@model.iStatus,"\n");

    end.

    readAverageFrom ArchiveForOneId

     

    和 readAverageFromArchive 一样,当归档几个时间值时,只读取一个时间值的数据。 

    1: INTEGER
    归档的 ID

    2-10 对应readAverageFromArchive 的参数 1-9

    INTEGER:

    用于平均化的数据集的数量

    nRet:=readAverageFromArchiveForOneId (9999,  rStartTime, rStopTime, nFilterSize,                 arstrFilterPointNameArray,                 arrFilterLowLimitArray,                 arrFilterHighLimitArray,                 arrFilterDeviationArray, arnFilterIdArray );

    readAverageTrend

    该函数检索一个数据点在指定时间段内的过滤值和时间平均值。必须指定平均化的时间间隔。过滤标准与函数 readAverageFromArchive 一样,都是指定的。在平均化时,不符合标准的点会被忽略。时间戳(分别是时间间隔的平均值)和数值被输入数组中,这些数组必须在 EbsScript 中事先创建。

    例如:确定 2003 年 11 月 15 日 8:00 至 16:00 之间测量点 PAB12CT001 的每小时平均值,其中只有那些计算成功(@model.iStatus < 7)且电厂处于运行状态(BAA20CE003A > 90000)和静止状态(BAA20CE003A 与前一个数据的变化不超过 3%)的数值才会被纳入平均数。.

    1: STRING
    数据点的名称

    2: REAL: 整个趋势的开始时间

    3: REAL: 整个趋势的结束时间

    4: REAL: 平均数的间隔(时间步长)

    5: INTEGER: 过滤标准的数量

    6: STRING: 过滤量名称的字段

    7: REAL: 允许的下限字段

    8: REAL: 允许的上限字段

    9: REAL: 与前一个数据集的最大允许偏差的字段

    10: INTEGER: 带有过滤器 ID 的字段(见上文)

    11: INTEGER: 为结果提供的字段的大小

    12: REAL(结果):带有趋势点时间的字段

    13: REAL(结果):带有结果值的字段

    INTEGER:

    发现的趋势点的数量。当这个数字超过结果数组的大小时,剩余的点将被丢弃。

    var
    strPointName:string;
    rStartTime,rStopTime,rTimeStep:real;
    nFilterSize:integer;
    arstrFilterPointNameArray:array[0..3] of string;
    arrFilterLowLimitArray:array[0..3] of real;
    arrFilterHighLimitArray:array[0..3] of real;
    arrFilterDeviationArray:array[0..3] of real;
    arnFilterIdArray:array[0..3] of integer;
    nArraySize:integer;
    arrTime:array[1..100] of real;
    arrValue:array[1..100] of real;
    i,nRet,nCount:integer;
    begin
    strPointName:="PAB12CT001.MEASM";
    rStartTime:=convertTime ("15.11.2003 08:00");
    rStopTime:=convertTime ("15.11.2003 16:00");
    rTimeStep:=1.0/24.0; // 1 Hour
    nFilterSize:=2;
    arstrFilterPointNameArray[0]:= "@model.iStatus";
    arrFilterLowLimitArray[0]:=0;
    arrFilterHighLimitArray[0]:=6;
    arrFilterDeviationArray[0]:=-1;
    arnFilterIdArray[0]:=1;
    arstrFilterPointNameArray[1]:=
                    "BAA20CE003A.MEASM";
    arrFilterLowLimitArray[1]:=90000;
    arrFilterHighLimitArray[1]:=-1;
    arrFilterDeviationArray[1]:=0.03;
    arnFilterIdArray[1]:=2;
    nArraySize:=100;
    nRet:=readAverageTrend (strPointName,
      rStartTime, rStopTime, rTimeStep, nFilterSize,
      arstrFilterPointNameArray,
      arrFilterLowLimitArray,   
      arrFilterHighLimitArray, arrFilterDeviationArray,
      arnFilterIdArray, nArraySize, arrTime,
      arrValue);
    print ("nRet = ",nRet,"\n");
    nCount:=min(nRet, nArraySize);
    for i:=1 to nCount do
    begin
        print (i," time ",arrTime[i]," value ",
                arrValue[i],"\n");
    end;
    end.

    readDatasetFromSRx

    从 SRx 数据服务器加载指定时间的完整数据集到模型中

    1: REAL : 时间戳

    2: STRING: SRxArchive

    3: STRING: SRxHost

    4: STRING: SRxPort

    BOOLEAN:
    true: 没问题
    false: 错误

    rTime:=convertTime ("26.01.2006 10:15:00");
    readDatasetFromSRx (rTime, "V", "localhost", "8001");

    readFromExcelFile

    这个函数可以直接从 Excel 文件中读取指定的单元格。

    1: STRING: Excel 文件的路径

    2: INTEGER: 要读取的 Excel 文件的工作表的编号

    3: STRING: 要读取的 Excel 文件的范围

    4: STRING: 用于读取数据的字段

    5: INTEGER: 读取数据的字段大小 

    BOOLEAN:
    true: 没问题
    false: 错误

    bOk:=readFromExcelFile( strFullExcelPath, 1, "A4:J26", arstrResults, iSize);

    readFromExcelFileNew

    这个函数可以使用动态数组从 Excel 文件中直接读取指定的单元格。

     

    1: STRING: Excel 文件的路径

    2: INTEGER: 要读取的 Excel 文件的工作表的编号

    3: STRING: 要读取的 Excel 文件的范围

    4: STRING: 读取数据的动态字段

    5: INTEGER: 读取数据的字段大小

    BOOLEAN:
    true: 没问题
    false: 错误

    var
      ar:array of string;
    begin
      if (readFromExcelFileNew("D:\\temp\\test.xls", 1,
         "B2:C3", ar)) then
      begin
        println ("ar ",length(ar)," ",ar[0]);
      end;
    end;

    readFromExcelFileVariant

    这个函数可以使用动态数组从 Excel 文件中直接读取指定的单元格。像 readFromExcelFileNew 一样,但单元格的数据以 VARIANT 类型移交(即保留了类型(Integer, Real, Text, 空白);到第 10 版为止,所有内容都是以文本形式读取的

     

                   

     

     

     

    readFromExcelFileVariant2

    这个函数可以使用动态数组从 Excel 文件中直接读取指定的单元格。
    像 readFromExcelFileVariant 一样, 但数据是以"数组的数组变量"的形式移交的。 

     

                   

     

     

     

    readInpFile

    读取一个带有测量值的文件。这可以是一个文本文件或一个 Excel 文件。如果是 Excel 文件,在第一行必须有格式化说明。

    1: STRING: 输入文件的路径名称

    2: BOOLEAN:
    true = 在读取之前,所有测量点都被设置为"空"。如果测量点在档案中丢失,它们将保持为空。
    false = 测量点不被设置为"空",如果测量点在档案中缺失,它们将保留以前的值。

    如果没有输入名称,会出现一个对话框来选择文件。

    BOOLEAN:
    true: 没问题
    false: 错误

    readInpFile ("D:\\temp\\Block750.inp”);

    readKeyFromSRx

    可以直接访问保存在 SRx 中的数据,而不必在 EBSILON 模型中创建和配置相应的对象。

    1: STRING: SRxKeyName

    2: REAL: 时间

    3: var real: 值

    4: STRING: 单位
    (标准 = "-")

    5: STRING: SRxArchive (标准 = "")

    6: STRING: SRxHost (标准 = "")

    7: STRING: SRxPort (标准 = "")

    BOOLEAN:
    true: 没问题
    false: 错误

    readKeyFromSRx("TestKey", 123, returnvalue, "-", "", "", "" );

    readLineFromFile

    这个 EbsScript 函数从一个文本文件中读取一行。

    该函数的实现方式是,在每次读取访问时,都会重新打开文件,搜索到该行,然后再次关闭文件。

    在这个例子中,文件 test.txt 的第一行被读取并显示。

    1: STRING: 在这个例子中,文件 test.txt 的第一行被读取并显示。

    2: STRING(Result): 读取文本行

    3: INTEGER: 要读取的行的编号

    BOOLEAN:
    true: 没问题
    false: 错误

    var
    b:boolean;
    s:string;
    begin
    b:=readLineFromFile( "c:\\temp\\test.txt", s, 1 );
    print (b," ",s,"\n");
    end;

    readPointFromSRx

    从 SRx 中检索指定时间戳的单个数据点的值。

    1: EBSCLASS: 要读取的对象

    2: REAL: 时间戳

    3: STRING: SRxArchive

    4: STRING: SRxHost

    5: STRING: SRxPort

    REAL:
    数据点的返回值

    rTime:=convertTime ("26.01.2006 11:15:00");
    rVal:=readPointFromSRx(TestDP_S1.MEASM, rTime, "V", "localhost", "8001");

    readTrendFrom Archive

    这个函数允许从 EposArchive 读取一个数据点的趋势。与 readAverageTrend 不同的是,它没有平均或过滤功能。 

     

    1: STRING
    数据点的名称

    2: REAL: 总趋势的开始时间

    3: REAL: 总趋势的结束时间

    4: INTEGER: 为结果提供的数组的大小

    5: REAL(结果):趋势点的时间数组

    6: REAL(结果):带有趋势点数值的数组

    INTEGER:

    发现的趋势点的数量。如果这个数字增加了指定数组的大小,剩下的点就不会被考虑。

     

    nRet:=readTrendFromArchive (strPointName,
    rStartTime, rStopTime, nArraySize, arrTime,
    arrValue);

    readUserExcel

    从指定的 Excel 文件中读取组件规格值。文件的布局必须根据用户 Excel 接口的规则来定义。

    1: STRING: 输入文件的路径名称

    BOOLEAN:
    true: 没问题
    false: 错误

    readUserExcel ("D:\\temp\\Block750_Data.xls”);

    readUserExcel Formatted

    像 readUserExcel 一样,但直接向用户 Excel 接口指定格式化字符串。这样,Excel 文件就不再需要包含任何格式化规格。格式化字符串的语法与格式化行相对应。此外,关键字"EbsClear"也可用,可以在读取前删除所有测量值。

    1: STRING: 输入文件的路径名称

    2: STRING: 带有关键字 EbsNames、EbsProfiles、EbsUnits(可选)、EbsClear(可选)的格式字符串。必须保持这个顺序。

    BOOLEAN:
    true: 没问题
    false: 错误

    readUserExcelFormatted ("D:\\temp\\Block750_Data.xls”, "EbsNames Col A EbsProfiles Col B to F EbsUnits Col G");

    removeSRxInfo

    删除存储在 Ebsilon 对象中的 SRx 信息。可以通过 Ebsilon 名称或 SRx 标签来选择要删除的条目。

    1: ebsclass: 要删除 SRx 信息的 Ebsilon 对象。如果这个参数是一个空的 ebsclass 变量,所有的 SRx 信息都会被删除,只要参数 2 和 3 不禁止这样做。

    2: STRING: 要删除 SRx 信息的对象的 SRx 标签。如果这个参数是一个空字符串,只要不被参数 1 和 3 禁止,所有的 SRx 信息都会被删除。

    3: STRING: 受删除影响的 SRx 档案的名称(识别字母)。只有考虑的指定档案的 SRx 信息被删除。

    INTEGER:

    begin

        if (removeSRxInfo(Measuring_point, "", "5" )) then

        begin

            println ("removeSRxInfo successful");

        end;

    end.

     

    or:

     

    var

        e:ebsobject;

    begin

        if (removeSRxInfo(e, "TagM2", "5" )) then

        begin

            println ("removeSRxInfo successful");

        end;

    end.

    setArchive

    这个函数允许在不同的 EposArchive 服务器之间切换。用这个函数指定服务器名称和端口后,所有后续的请求都会被发送到这个服务器(直到下次调用 setArchive 改变设置)

    1:STRING: 计算机的名称,要使用的 EposArchive 正在上面运行

    2:STRING: 要使用的 EposArchive 的服务名称(端口) 

    -

    setEposArchive ("Einhausen", "EposArchive");

    setSRxInfo

    该函数修改存储在 Ebsilon 中的指定点的配置数据(SRx-标签, SRx-档案和读写标志)

    1:EBSCLASS: 考虑的 Ebsilon 对象(数据点)。

    2:BOOLEAN:
    true: 数据点应被配置为读出
    false: 数据点不应被配置为读出

    3:BOOLEAN:
    true: 数据点应被配置为写入数据
    false: 数据点不应被配置为写入数据

    4:STRING: 数据点的 SRx 标签

    5:strArchives: 要使用的 SRx 档案

    6:BOOLEAN:
    true: 不检查数据集是否有重复的标签
    false: 检查数据集是否有重复的标签

    BOOLEAN:
    true: 没问题
    false: 错误

    bOk:=setSRxInfo (ePoint, bRead, bWrite, strTag, strArchives,bNoCheckForDuplicateTags);

    shellExecute

    执行一个外部程序

    (可选参数只传递给 Windows 函数::ShellExecuteEx。详情请见微软文档) 

    1: STRING: 程序的路径名称

    2: STRING: 参数行(默认值:"")

    3: BOOLEAN: 标志,是否同步执行(默认值:false)

    4: STRING: 程序执行的工作目录(默认值:"",即当前目录)

    5: INTEGER: 显示标志 nShow(默认值:10)

    6: STRING: 操作 lpVerb(默认值:"")

    BOOLEAN:
    true: 没问题
    false: 错误

    shellExecute("notepad");

    writeDatasetToSRx

    将一个完整的数据集按照指定的时间戳传输到 SRx 数据服务器上。

    1: REAL: 时间戳

    2: STRING: SRxArchive

    3: STRING: SRxHost

    4: STRING: SRxPort

    BOOLEAN:
    true: 没问题
    false: 错误

    rTime:=convertTime ("26.01.2006 10:15:00");
    writeDatasetToSRx (rTime, "V", "localhost", "8001");

    writeKeyToSRx

    可以直接访问保存在 SRx 中的数据,而不必在 EBSILON 模型中创建和配置相应的对象。

    1: STRING: SRxKeyName

    2:REAL: 时间

    3:REAL: 值

    4:STRING: 单位
    (标准 = "-")

    5:STRING: SRxArchive
    (标准 = "")

    6:STRING: SRxHost
    (标准 = "")

    7:STRING: SRxPort
    (标准 = "")

    BOOLEAN:
    true: 写入成功
    false: 写入失败

    writeKeyToSRx("TestKey", 123, 512, "-", "", "", "");

    writePointToSRx

    向 SRx 数据服务器中的指定时间戳写入一个单一的数值。

    1: EBSCLASS: 要写入的对象

    2: REAL: 时间戳

    3: REAL: 值

    4: STRING: SRxArchive

    5: STRING: SRxHost

    6: STRING: SRxPort

    BOOLEAN:
    true: 没问题
    false: 错误

    rTime:=convertTime ("26.01.2006 11:15:00");
    rVal:=writePointToSRx(TestDP_S1.MEASM, rTime, 50.8, "V", "localhost", "8001");

    writeToArchive

    该函数在 EposArchive 中写入一条记录。

    1: INTEGER: 档案馆的 ID,记录将被写入其中

    2: REAL: 时间点

    BOOLEAN:
    true: 没问题
    false: 错误

    bOk:=writeToExcelFile( strFullExcelPath, 1, "A4:J26", arstrValues, iSize);

    writeToExcelFile

    该函数用于向 Excel 文件的指定单元格写入数据。

     

    1: STRING: Excel 文件的路径

    2: INTEGER: Excel 文件中工作表的编号

    3: STRING: Excel 文件中工作表的编号

    4: STRING: 要传输的数据的数组

    5: INTEGER: 包含数据的数组的大小

    BOOLEAN:
    true: 没问题
    false: 错误

    bOk:=writeToExcelFile( strFullExcelPath, 1, "A4:J26", arstrValues, iSize);

    writeToExcelFileNew

    该函数用于使用动态数组向 Excel 文件的指定单元格写入数据。

     

    1: STRING: Excel 文件的路径

    2: INTEGER: Excel 文件中工作表的编号

    3: STRING: Excel 工作表的范围

    4: STRING-ARRAY: 包含要传输的数据的数组

    BOOLEAN:
    true: 没问题
    false: 错误

    var
      ar:array of string;
      i:integer;
    begin
      setLength (ar, 100);
      for i:=0 to 99 do
      begin
        ar[i]:=printToString ("Test",i);
      end;
      if (writeToExcelFileNew("D:\\temp\\test.xls", 1,
          "D11:G35", ar)) then
      begin
        println ("write successfull");
      end;
    end;

    writeToExcelFileVariant

    该函数用于使用动态数组向 Excel 文件的指定单元格写入数据。

    就像 writeToExcelFileNew 一样,但单元格的数据是以 VARIANT 类型移交的(即保留了类型(Integer, Real, Text, 空白);到第 10 版为止,所有的数据都被写成文本) 

     

                   

     

     

     

    writeToExcelFileVariant2

    该函数用于使用动态数组向 Excel 文件的指定单元格写入数据。

    就像 writeToExcelFileVariant 一样,但数据是以"数组的数组 VARIANT"的形式递交的。

     

                   

     

     

     

    writeToFile

    启用文件中的文本输出,或者在一个新的文件或已经存在的文件中输出。

    1: STRING: 要写入的文件的路径名称

    2: STRING: 要输入的文本

    3: BOOLEAN:
    true: 如果文件已经存在,文本将被添加到最后
    false: 文件从头开始写入

    BOOLEAN:
    true: 没问题
    false: 错误

    writeToFile("c:\\temp\\Result.log","Calculation successful",true);

    writeUserExcel

    根据模板文件在 Excel 文件中写入规格和结果值。

    1: STRING: Excel 模板文件的路径名称,它定义了要使用的布局。

    2: STRING: Excel 文件的路径名称,报告将被写入该文件中。

    BOOLEAN:
    true: 没问题
    false: 错误

    writeUserExcel ("D:\\temp\\Block750.inp”, "EbsNames Col A EbsProfiles Col B to F EbsUnits Col G");

    writeUserExcel Formatted

    就像 writeUserExcel 一样,但是直接将格式化字符串的规格写到用户 Excel 接口。这样,Excel 文件就不再需要包含任何格式化规格。格式化字符串的语法与格式化行相对应。

    1: STRING: 要写入报告的 Excel 文件的路径名称

    2: STRING: 带有 EbsNames, EbsProfiles, EbsUnits(可选)等关键词的格式字符串。必须保持这个顺序。

    BOOLEAN:
    true: 没问题
    false: 错误

     

    writeValFile

    将验证校核报告写入指定的文件中。这始终是一个文本文件,不管扩展名是什么。

    1: STRING: 要创建的文本文件的路径名称

    BOOLEAN:
    true: 没问题
    false: 错误

    writeValFile ("D:\\temp\\Block750.val”);