如何在DOORS中使用DXL来获取RTF格式的格式化并获取实际的字符串值?

时间:2019-03-04 01:48:17

标签: ibm-doors

我正在尝试获取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值,我想知道剥离这种格式并获得最佳方法是什么只是价值。

也许我也没有想到另一种解决方法。任何帮助将不胜感激。

2 个答案:

答案 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的基本要求。