在模块中查找变量

时间:2018-02-02 05:29:47

标签: ibm-doors

我是DXL的新手,我想提取包含

的变量
_I_,_O_ and _IO_

从模块中导出然后导出到csv文件。请帮帮我这个

EG: ADCD_WE_I_DFGJDGFJ_12_QWE and CVFDFH_AWEQ_I_EHH[X]设置为某个值

1 个答案:

答案 0 :(得分:0)

这个问题分为两部分。

  1. 您想要查找名称中包含这些部分的变量

  2. 您要导出为.csv文件

  3. 另一个人可能能够以更好的方式扩展,但现在想到的唯一方法就是:

    遍历模块中的属性(对于m中的广告{}}并获取属性名称的字符串。

    我假设您的属性值为_I _,_ O_或_OI_?像alpha =" _I _"?这些枚举值是? 如果是,那么您只需要检查每个对象属性的值。如果其中一个是属性值,则将其添加到类似跳过列表的内容中。在这里有一个计数器是有用的,也许每个属性一个,如countI,countO,countOI,然后你可以使用计数器作为跳过列表的put()函数的键。

    找到所有属性后,您可以继续写入csv

    Stream out = write("filepathname/filename.csv") // to declare the stream
        out << "_I_, _O_, _OI_\n"
    

    然后你可以同时遍历你的Skip列表

    int ijk = 0; bool finito = false
    while(!finito) do {
      if(ijk<countI) {
        at = get(skipListI, ijk)
        out << at.name ","
      }
      else out << ","
      if(ijk<countO) {
        at = get(skipListO, ijk)
        out << at.name ","
      }
      else out << ","
      if(ijk<countOI) {
        at = get(skipListOI, ijk)
        out << at.name "\n"
      }
      else out << "\n"
    
      ijk++
      // check if the next iteration would be outside of bounds on all lists
      if(ijk >= countI && ijk >= countO && ijk >= countIO) finito = true
    }
    

    或者代替at.name,您可以打印出您想要的属性的任何部分。名称,值,&#34;名称:值&#34;或者其他什么。

    我没有运行此功能,因此您可以进行任何故障排除。

    -

    我希望这个想法能让你开始,先在纸上写下你想要的东西然后按照那个计划行事。我在这里提到的关键事项是Skip list和Stream write(或者如果你想继续添加,可以追加)。

    将来,请考虑更清楚地提出您的问题。您是在属性名称中还是在属性值中查找这些搜索词。您是否打算打印出名称或值,或者什么?您将拥有什么样的.csv格式?任何信息都可以帮助您回答问题。