DOORS DXL关系表达式搜索

时间:2017-11-10 18:45:51

标签: ibm-doors

是否有人有一个脚本会搜索一列中的特定文本,然后将该文本复制到新列?文本需要与前3个字符匹配,如果匹配,则复制整个单词,最多可包含8个字符。 提前致谢。

1 个答案:

答案 0 :(得分:0)

好的,我们假设您正在搜索的属性是'对象文字'

首先,我们需要创建一个新属性来保存我们的结果 - 我们将其称为“新属性”

create type "String" attribute "New Attribute"

接下来我们需要将它添加到我们的视图中,以便我们可以看到它。此代码计算列数,并在末尾添加一个与新属性绑定的列。

int z = 0
Module m = current
Column c
for c in m do {
    z++
}
c = insert ( column z )
title ( c , "New Attribute" )
attribute ( c , "New Attribute" )
width ( c , 100 )

现在我们需要实际获取相关信息并填充我们的新属性。让我们说我们匹配前三个字符,那些是' XYZ'。另外,让我们进一步说明我们将会到达单词的末尾,所以如果我们找到一个' XYZ',直到你到达一个空格。

Object o
Regexp string_find = regexp2 "XYZ"
string item_to_search
string word_to_copy
for o in m do {
    item_to_search = o."Object Text"
    if ( string_find item_to_search ) {
        int x = start 0
        int y = end 0
        while ( ( item_to_search[ y ] != ' ' ) && ( y < length ( item_to_search ) ) ) {
            y++
        }
        o."New Attribute" = item_to_search [ x : ( y - 1 ) ]
    }    
}

我确定有一个更优雅的方式来设置这一切,但这是我发生的第一个解决方案,假设你定义的约束是真的。