尝试创建一个DXL布尔属性(称为“是需求吗?”)如果“应”一词存在于另一个属性(称为"Text")中,则为true,否则为false。
在DOORS模块的编辑模式中,我单击“编辑->属性->”“是需求吗?”->编辑.->检查DXL属性->浏览。->新建,编写代码-> Ok,关闭所有窗口,工具->刷新DXL属性
Object o
for o in current Module do{
if((o."Text") contains "shall")
{
o."Is Requirement?" = "True"
}
else
{
o."Is Requirement?" = "False"
}
}
发布于 2022-06-09 06:09:40
这里有几个方面:
obj
中可用,该属性在attrDXLName
中可用。无论是在DXL属性中还是在DXL布局中,都没有对象的循环,columns.contains
具有签名int contains(Buffer b, string word, int offset)
,它在缓冲区上运行,而不是在字符串上操作。您可能希望使用bool findPlainText(string s, string sub, int &offset, int &length, bool matchCase[, bool reverse])
o."Text"
将返回一个对象引用。但是您需要检查属性的内容。要获取string属性的内容,必须将对象引用强制转换为string,例如,将引用与字符串连接起来。您可以使用obj."Text" ""
.这会将代码更改为
int offset, length
bool matchCase = true
obj.attrDXLName = findPlainText (obj."Object Text" "", "shall", offset, length, matchCase)
请记住,DXL属性的类型必须是布尔型才能工作。
最后但并非最不重要的是:你确定你的条件“文本包含应该”是足够的吗?包含“应该”(https://www.thefreedictionary.com/words-containing-shall)的所有单词怎么办?在互联网的某个地方有一些关于这个话题的线索。搜索“要求DXL应浅”。还有:“应该”够了吗?那“可能”、“应该”、“必须”呢?
https://stackoverflow.com/questions/72553436
复制相似问题