Doors 中不显示字符串换行符

String Newline not displaying in Doors

我有包含一些数据的 csv 文件,例如:

374,Test Comment multiplelines \n Here's the 2nd line,Other_Data

其中 374 是来自门的对象 ID,然后是一些评论,然后是一些其他数据。 我有一段代码可以从 CSV 文件中读取数据,将其存储在适当的变量中,然后将其写入门对象。

Module Openend_module = edit("path_to_mod", true,true,true)
Object o ;
Column c;
string attrib;
string oneLine ;
string OBJECT_ID = "";
string Comment = "";
String Other_data = "";

int offset;

string split_text(string s)
{
        if (findPlainText(s, sub, offset, len, false)) 
        {
            return s[0 : offset -1]   
        } 
        else 
        {
            return ""
        }
}

Stream input = read("Path_to_Input.txt");
input >> oneLine
OBJECT_ID = split_text(oneLine)
oneLine = oneLine[offset+1:]
Comment = split_text(oneLine)
Other_data = oneLine[offset+1:]

当使用 print Comment 时,DXL 控制台中的输出是:Test Comment multiplelines \n Here's the 2nd line

for o in Opened_Module do 
{
if (o."Absolute Number"""==OBJECT_ID ){
   attrib = "Result_Comment " 2
   o.attrib = Comment
  }
}

但是写入doors对象后,没有考虑\n,结果如下:

我试过将字符串放入缓冲区并使用 stringOf() 但转义字符就消失了。 我也尝试将 \r\n\n 添加到输入的 csv 文本中,但仍然没有成功

这不是处理此问题的最有效方法,但我有一个相对简单的修复方法。

我建议添加以下内容:

Module Openend_module = edit("path_to_mod", true,true,true)
Object o ;
Column c;
string attrib;
string oneLine ;
string OBJECT_ID = "";
string Comment = "";
String Other_data = "";

int offset;

string split_text(string s)
{
        if (findPlainText(s, sub, offset, len, false)) 
        {
            return s[0 : offset -1]   
        } 
        else 
        {
            return ""
        }
}

Stream input = read("Path_to_Input.txt");
input >> oneLine
OBJECT_ID = split_text(oneLine)
oneLine = oneLine[offset+1:]
Comment = split_text(oneLine)
Other_data = oneLine[offset+1:]

//Modification to comment string
int x
int y
while ( findPlainText ( Comment , "\n" , x , y , false ) ) {
     Comment = ( Comment [ 0 : x - 1 ] ) "\n" ( Comment [ x + 2 : ] )
}

这将运行 注释字符串通过解析器,将字符串“\n”替换为字符“\n”。请注意 - 这将忽略行尾的任何尾随空格。

如果有帮助请告诉我。