如何将DOORS中的枚举列表值导出到MATLAB数据的单元格或字段中

时间:2017-02-08 14:08:25

标签: matlab ibm-doors

这是情况。我在DOORS模块中有一个属性,它允许选择多个枚举列表值。如果我将DOORS模块导出到Excel工作簿,并且枚举值将显示在Excel单元格中的单独行上。如果我导出到CSV文件,则每个枚举集合都包含引号;每个枚举值后跟一个CR-LF。

如果我尝试使用readtable将CSV导入MATLAB,则导入失败,因为CSV文件中的某些行不是“全长”,因为DOORS中的相应对象对于某些属性具有空值。如果我从Excel工作表导入,我可以获取所有数据,但所有枚举值都被“压缩”为一个字符串。断行字符丢失,无法分隔各个枚举字符串。

我试图做这一切的原因是我希望能够自动地将DOORS中基础EnumerationType中的所有值转储到MATLAB中的单元数组中,以便进行后续匹配和处理。我试图避免编写(然后分发给同事)一个DXL脚本,该脚本收集各个枚举值并将它们写入输出文件 - 除其他外,它将枚举输出与其他信息的一般输出分开属性。 (并且可能会导致导入MATLAB痛苦)。

所以:任何想法?我错过的导出/导入选项可能会有所帮助吗?

以下是输出CSV格式的示例。包含在一对'''之间的所有内容都包含一个对象的枚举属性值集。第一行包含标题标签。

ID,Type,ReqStatus,_ApprovalList,_ApprovedBy
PF_SYS_RC_2436,Functional Requirement,Init,Soe Jivak,
PF_SYS_RC_2082,Non-Functional Requirement,In Review,"Soe Jivak
Lord Tyrion
Jon Snow
Larry
Moe
Curly
Groucho
Harpo
Beppo","Lord Tyrion
Larry
Moe"
PF_SYS_RC_2083,Non-Functional Requirement,In Review,"Jon Snow
Larry
Moe",Larry
PF_SYS_RC_2084,Non-Functional Requirement,In Review,Groucho,
PF_SYS_RC_2088,Non-Functional Requirement,In Review,"Lord Tyrion
Moe
Groucho",Moe

1 个答案:

答案 0 :(得分:0)

这是一种可行的方法,虽然在导入MATLAB后需要进行一些字符串匹配和正则表达式工作。

  1. 将DOORS模块导出为纯文本文件。是的,对不起Unicode :-(

  2. 使用参数readtable('filename.txt','delimiter',':','readvariablenames',false);导入这是因为属性名称使用冒号与属性值分隔。结果是table有两列,Var1Var2
  3. 按属性名称分隔属性内容 - 基本上通过find或等价物收集每个名称的索引。
  4. 根据需要,将每个枚举列表拆分为单元格数组。这些列表是“Var2”单元格中每个字符串中的逗号分隔值。
  5. 以下是MATLAB“变量”窗口显示的问题中提供的示例数据。 (对不起,我看不出如何分成两个明显的栏目)

    '键入''功能要求'
    '绝对数''2436'
    'ReqStatus''Init'
    '_ApprovedBy''' '_ApprovalList''Soe Jivak' '_Reviewer''' '_PeerReview''' '输入''非功能性要求'
    '绝对数''2082'
    'ReqStatus''回顾' '_ApprovedBy''Tyrion勋爵,Larry,Moe' '_ApprovalList''Soe Jivak,Lord Tyrion,Jon Snow,Larry,Moe,Curly,Groucho,Harpo,Beppo'
    '_Reviewer''' '_PeerReview''同行评审' '输入''非功能需求'