我正在尝试获取DOORS的“ ID”列中的值,而我目前正在这样做
字符串ostr = richtext_identifier(o)
当我尝试打印ostr时,在某些模块中,我只会得到ID(这就是我想要的)。但是在其他模块中,我将获得类似“ {\ rtf1 \ ansi \ ansicpg1256 \ deff0 \ nouicompat {\ fonttbl {\ f0 \ fnil \ fcharset0 Times New Roman;} {\ f1 \ froman \ fcharset0 Times New Roman;}} { * \ generator Riched20 10.0.17134} \ viewkind4 \ uc1 \ pard \ f0 \ fs20 \ lang1033 SS_ \ f1 \ fs24 100 \ par}“这是RTF值,我想知道剥离这种格式并获得最佳方法是什么只是价值。
也许我也没有想到另一种解决方法。任何帮助将不胜感激。
答案 0 :(得分:0)
因此,DOORS的ID列实际上是复合的-DOORS会根据模块级别的属性“前缀”和对象级别的属性“绝对编号”来构建它。
如果您希望将来获得此值,我将执行以下操作(使用您的变量)
string ostr = ( module ( o ) )."Prefix" o."Absolute Number" ""
这与以下内容相反(尽管在插入列对话框中似乎是有效的属性)将不起作用。
string ostr = o."Object Identifier" ""
希望这会有所帮助!
注释响应:您不需要模块名称即可运行代码。我在DOORS 9.6.1.10上成功测试了以下内容:
Object o = current
string ostr = ( module ( o ) )."Prefix" o."Absolute Number" ""
print ostr
答案 1 :(得分:0)
另一种解决方案是使用 identifier 函数,该函数将Object作为输入参数,并以纯文本(非RTF)字符串返回标识符:
声明 字符串标识符(对象o) 操作 以字符串形式返回对象o的标识符,该标识符是绝对数字和模块前缀的组合。
最佳解决方案在某种程度上取决于您检索对象ID的基本要求。