(defun c:data ( / nxt_line pn_done locn_tst locn_txt proj_num memo_txt) (setq dat_file (open "c:/windows/prod.txt" "r")) (setq dat_out (open "c:/windows/prod.out" "w")) (setq nxt_line (read-line dat_file)) (if (eq nxt_line "ZZZZ") (setq nxt_line (read-line dat_file)) ) (setq memo_txt " ") (if (wcmatch (setq proj_num (substr nxt_line 1 6)) "??####") (setq memo_txt (strcat proj_num "\\")) ) (setq pn_done T) (while nxt_line ;(princ (strcat "\nFirst while: " nxt_line)) (while (and(not (eq nxt_line "ZZZZ"))nxt_line) ; (princ (strcat "\nSecond while: " nxt_line)) (if (and (not pn_done) (wcmatch (setq proj_num (substr nxt_line 1 6)) "??####") ) (progn (setq memo_txt (strcat proj_num "\\")) (setq pn_done T) ) (if (not pn_done) (progn (setq memo_txt " \\") (setq pn_done T) ) ) ) (if (or (eq (substr memo_txt (strlen memo_txt) 1) " ") (eq (substr memo_txt (strlen memo_txt) 1) "\\") ) (setq memo_txt (strcat memo_txt nxt_line)) (setq memo_txt (strcat memo_txt " " nxt_line)) ) (setq locn_tst (strcase (substr nxt_line 1 5))) (if (eq (strcase locn_tst) "LOCAT") (setq locn_txt nxt_line) ) (setq nxt_line (read-line dat_file)) ) (if memo_txt (write-line (strcat memo_txt "\\" (if locn_txt locn_txt "" ) ) dat_out ) ) (setq locn_txt nil pn_done nil memo_txt " ") (setq nxt_line (read-line dat_file)) ) (close dat_file) (close dat_out) ) (defun *error* () (princ msg))