.dsd isn't a file type I know or have used, why that one?
Are you able to go a bit simpler, instead of creating an external file create a little LISP that assesses the drawing and which space the border details are saved in and then publish from there? You can share that LISP with colleagues who can do the same thing without needing access to the external file?
But back to the original question, instead or 'w'riting to the text file, check the file exists and then 'A'ppend to the file
LISP something like this to get where the border is located. Assuming that the border is / contains a unique block (user specified and hard coded in the LISP... it is possible to use wildcards if say border blocks are "A1 Border" "A2 Border" and so on
(defun c:BorderSpace ( / BorderName MyBorder BorderSpace)
(setq BorderName "My_Border_Block_Name") ;USer defined border block name
(setq MyBorder (ssget "_X" (list (cons 2 BorderName)))) ;; search drawing for the border block
;; Add here check in in case there is no block, BorderName inserted ;;
(setq BorderSpace (cdr (assoc 410 (entget (ssname MyBorder 0))))) ; get the 'space' birder block is inserted in
;; Do plotting / publish routine from here ;;
;;.......
)
You can add the details from your LISP to find file locations and so on as required,