【问题标题】:How do you get strip RTF formatting and get actual string value using DXL in DOORS?如何在 DOORS 中使用 DXL 获取条形 RTF 格式并获取实际字符串值?
【发布时间】:2019-03-04 01:48:17
【问题描述】:

我正在尝试获取 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 值,我想知道最好的方法是去除这种格式并得到只是价值。

也许还有另一种我没有想到的方法来解决这个问题。任何帮助将不胜感激。

【问题讨论】:

    标签: ibm-doors


    【解决方案1】:

    所以 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
    

    【讨论】:

      【解决方案2】:

      另一种解决方案是使用 identifier 函数,该函数将 Object 作为输入参数,并将标识符作为普通(非 RTF)字符串返回:

      声明 字符串标识符(对象 o) 操作 以字符串形式返回对象 o 的标识符,它是绝对编号和模块前缀的组合。

      最佳解决方案在某种程度上取决于您检索对象 ID 的基本要求。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-06-21
        • 1970-01-01
        • 2019-07-13
        • 2019-05-14
        • 1970-01-01
        • 1970-01-01
        • 2012-08-15
        • 1970-01-01
        相关资源
        最近更新 更多