如何在 DOORS 中使用 DXL 获取条带 RTF 格式并获取实际字符串值?
How do you get strip RTF formatting and get actual string value using DXL in 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 值,我想知道最好的方法是去除这种格式并只获取值。
也许还有另一种方法可以解决这个问题,我也没有想到。任何帮助将不胜感激。
所以 DOORS 的 ID 列实际上是一个组合 - DOORS 将其构建在模块级属性 'Prefix' 和对象级属性 'Absolute Number'.
之外
如果你以后想获取这个值,我会执行以下操作(使用你的变量)
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
另一种解决方案是使用 identifier 函数,它将一个对象作为输入参数,returns 标识符作为普通(非 RTF)字符串:
声明
字符串标识符(对象 o)
操作
Returns对象o的标识符,是绝对数字和模块前缀的组合,字符串。
最佳解决方案在某种程度上取决于您检索对象 ID 的基本要求。
我正在尝试获取 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 值,我想知道最好的方法是去除这种格式并只获取值。
也许还有另一种方法可以解决这个问题,我也没有想到。任何帮助将不胜感激。
所以 DOORS 的 ID 列实际上是一个组合 - DOORS 将其构建在模块级属性 'Prefix' 和对象级属性 'Absolute Number'.
之外如果你以后想获取这个值,我会执行以下操作(使用你的变量)
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
另一种解决方案是使用 identifier 函数,它将一个对象作为输入参数,returns 标识符作为普通(非 RTF)字符串:
声明 字符串标识符(对象 o) 操作 Returns对象o的标识符,是绝对数字和模块前缀的组合,字符串。
最佳解决方案在某种程度上取决于您检索对象 ID 的基本要求。