DOORS DXL File Operation

DOORS DXL FILE OPERATION

DOORS DXL File Operation

In this article we will discuss DOORS DXL file operations.

In IBM Rational DOORS DXL (DOORS eXtension Language), file handling refers to the process of reading and writing files from within a DXL script. This allows the script to interact with files outside of the DOORS environment, such as text files, CSV files, and XML files.

Here are some examples of file handling tasks that can be performed in DOORS DXL:

  1. Reading data from a text file: The DXL script can open a text file and read the contents into a DOORS object or attribute.
  2. Writing data to a CSV file: The DXL script can create a new CSV file and write data from DOORS objects or attributes to the file in a comma-separated format.
  3. Parsing an XML file: The DXL script can open an XML file and extract data from specific elements or attributes within the file.

File input and output is done via streams in DXL (similar to C++). ‘>>’ reads the data from a stream and ‘<<‘ operator is used to write some data into the stream.

Overall, file handling in DOORS DXL provides a powerful tool for working with data outside of the DOORS environment and integrating DOORS with other systems or tools.

Write to a File

To write to a file in DOORS DXL, you can use the write function. The following example code is to show how to write to a file in DXL –

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
// www.TheCloudStrap.Com
/************************************************************************
* $FILENAME: f1.dxl
* $DESCRIPTION: File operations - Write
*
* NOTICE: Copyright www.TheCloudStrap.Com. All rights reserved.
* Software comes without any warranties and guarantees, is provided
* as is and is not supported. Use this software at your own risk.
* Authors resume no liabilities.
*
* Contact: admin {at} TheCloudStrap.com
************************************************************************/
// File Write operations
Module m = current
string f = "C:/sample_file.txt"
Stream st_out = write f
Object o
string obj_txt = null
string r_status = null
string b_id = null
st_out << "Object Text, Stakeholder_Req_Status, Build_ID\n"
st_out << "---------------------------------------------------\n"
for o in m do {
obj_txt = o."Object Text"
r_status = o."Stakeholder_Req_Status"
b_id = o."Build_ID"""
if(!null obj_txt)
st_out << obj_txt ", " r_status ", " b_id "\n"
}
close st_out
print "Done!\n"
// www.TheCloudStrap.Com /************************************************************************ * $FILENAME: f1.dxl * $DESCRIPTION: File operations - Write * * NOTICE: Copyright www.TheCloudStrap.Com. All rights reserved. * Software comes without any warranties and guarantees, is provided * as is and is not supported. Use this software at your own risk. * Authors resume no liabilities. * * Contact: admin {at} TheCloudStrap.com ************************************************************************/ // File Write operations Module m = current string f = "C:/sample_file.txt" Stream st_out = write f Object o string obj_txt = null string r_status = null string b_id = null st_out << "Object Text, Stakeholder_Req_Status, Build_ID\n" st_out << "---------------------------------------------------\n" for o in m do { obj_txt = o."Object Text" r_status = o."Stakeholder_Req_Status" b_id = o."Build_ID""" if(!null obj_txt) st_out << obj_txt ", " r_status ", " b_id "\n" } close st_out print "Done!\n"
// www.TheCloudStrap.Com 

/************************************************************************
* $FILENAME: f1.dxl
* $DESCRIPTION: File operations - Write
*
* NOTICE: Copyright www.TheCloudStrap.Com. All rights reserved.
* Software comes without any warranties and guarantees, is provided 
* as is and is not supported. Use this software at your own risk. 
* Authors resume no liabilities.
* 
* Contact: admin {at} TheCloudStrap.com
************************************************************************/

// File Write operations
Module m = current 

string f = "C:/sample_file.txt"
Stream st_out  = write f

Object o
string obj_txt = null
string r_status = null
string b_id = null
st_out << "Object Text,   Stakeholder_Req_Status,   Build_ID\n"
st_out << "---------------------------------------------------\n"
for o in m do { 
	obj_txt = o."Object Text"
	r_status = o."Stakeholder_Req_Status"
	b_id = o."Build_ID"""
	if(!null obj_txt)
		st_out << obj_txt ",   " r_status ",   " b_id "\n"
}
close st_out



print "Done!\n"

Here is the DOORS module on which we ran the dxl code –

Here is the output –

Read from a File

Now, let’s read the same file (that we created in the previous example) and print out the content in the DXL output window –

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
// www.TheCloudStrap.Com
/************************************************************************
* $FILENAME: f2.dxl
* $DESCRIPTION: File operations - Read
*
* NOTICE: Copyright www.TheCloudStrap.Com. All rights reserved.
* Software comes without any warranties and guarantees, is provided
* as is and is not supported. Use this software at your own risk.
* Authors resume no liabilities.
*
* Contact: admin {at} TheCloudStrap.com
************************************************************************/
// File Read operations
Module m = current
string f = "C:/sample_file.txt"
Stream st_inp = read f
Object o
string line = null
print "print the content of the input fiule : \n"
for(st_inp>>line; !end st_inp; st_inp>>line) {
print line "\n"
}
close st_inp
print "Done!\n"
// www.TheCloudStrap.Com /************************************************************************ * $FILENAME: f2.dxl * $DESCRIPTION: File operations - Read * * NOTICE: Copyright www.TheCloudStrap.Com. All rights reserved. * Software comes without any warranties and guarantees, is provided * as is and is not supported. Use this software at your own risk. * Authors resume no liabilities. * * Contact: admin {at} TheCloudStrap.com ************************************************************************/ // File Read operations Module m = current string f = "C:/sample_file.txt" Stream st_inp = read f Object o string line = null print "print the content of the input fiule : \n" for(st_inp>>line; !end st_inp; st_inp>>line) { print line "\n" } close st_inp print "Done!\n"
// www.TheCloudStrap.Com 

/************************************************************************
* $FILENAME: f2.dxl
* $DESCRIPTION: File operations - Read
*
* NOTICE: Copyright www.TheCloudStrap.Com. All rights reserved.
* Software comes without any warranties and guarantees, is provided 
* as is and is not supported. Use this software at your own risk. 
* Authors resume no liabilities.
* 
* Contact: admin {at} TheCloudStrap.com
************************************************************************/

// File Read operations
Module m = current 

string f = "C:/sample_file.txt"
Stream st_inp  = read f

Object o
string line = null

print "print the content of the input fiule : \n"
for(st_inp>>line; !end st_inp; st_inp>>line) {
	print line "\n"
}

close st_inp
print "Done!\n"

Here is the output –

The output windows displays the content of the input file.

File Access

There are built-in functions in DXL that can be used to check various file parameters. For example, with the help of fileExists() function, you can determine if a file is already exists.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
// www.TheCloudStrap.Com
/************************************************************************
* $FILENAME: f3.dxl
* $DESCRIPTION: File operations
*
* NOTICE: Copyright www.TheCloudStrap.Com. All rights reserved.
* Software comes without any warranties and guarantees, is provided
* as is and is not supported. Use this software at your own risk.
* Authors resume no liabilities.
*
* Contact: admin {at} TheCloudStrap.com
************************************************************************/
//
bool isFileExists (string f_name) {
Stat st = create (f_name)
return (!null st)
}
// File Access
string f = "C:/sample_file.txt"
if (isFileExists(f)) {
print "file exists.\n"
}
else {
print "file does not exist.\n"
}
print "Done!\n"
// www.TheCloudStrap.Com /************************************************************************ * $FILENAME: f3.dxl * $DESCRIPTION: File operations * * NOTICE: Copyright www.TheCloudStrap.Com. All rights reserved. * Software comes without any warranties and guarantees, is provided * as is and is not supported. Use this software at your own risk. * Authors resume no liabilities. * * Contact: admin {at} TheCloudStrap.com ************************************************************************/ // bool isFileExists (string f_name) { Stat st = create (f_name) return (!null st) } // File Access string f = "C:/sample_file.txt" if (isFileExists(f)) { print "file exists.\n" } else { print "file does not exist.\n" } print "Done!\n"
// www.TheCloudStrap.Com 

/************************************************************************
* $FILENAME: f3.dxl
* $DESCRIPTION: File operations
*
* NOTICE: Copyright www.TheCloudStrap.Com. All rights reserved.
* Software comes without any warranties and guarantees, is provided 
* as is and is not supported. Use this software at your own risk. 
* Authors resume no liabilities.
* 
* Contact: admin {at} TheCloudStrap.com
************************************************************************/

//
bool isFileExists (string f_name) {
	Stat st = create (f_name)
	return (!null st)
}

// File Access
string f = "C:/sample_file.txt"

if (isFileExists(f)) {
	print "file exists.\n"
}
else {
	print "file does not exist.\n"
}

print "Done!\n"

Here is the output –

Since the ‘sample_file.txt’ already exists in C drive, the output prints ‘file exists’.

Conclusion

In this article we have explained how to write to a file and read from a file using DXL code.

DOORS DXL File Operation
Scroll to top
error: Content is protected !!