Jaap, I am commenting to learn. I tested the agoldma code. The formats 3. and PD3. work fine all by themselves. If I understand the link you provided, http://support.sas.com/documentation/cdl/en/leforinforref/63324/HTML/default/viewer.htm#n0xnvrbp96w34un1j7fgbfqgz4x5.htm, data written as .pd4 should be read as .pd4. I wrote my data as .pd3 and read it in as .pd3 and the process worked as expected. When I wrote .pd3 and read as .pd2, the file read in the number "0" not the number "-12". I am thinking ahead and imagining two files, one created with .pd4 and the other created with .pd3. How would I build code that would adjust itself to change the format to .pd3 or .pd4 based on the file being read. My solution is to use macro variables. I believe that agoldma is trying to build a proc format solution. Data _nulls_ solution is very novel to me. I have never seen "invalue inpdthree default=3 max=3 other = [pd3.] ;" and I have also never seen brackets "[ ]" used in a Proc format. Thank you to all who post Questions and Answers. Your thoughts and Ideas are priceless and definitely cheaper than taking SAS courses. 37 38 %let thre=3.; 39 %let pdthre=pd3.; 40 data _null_; 41 x=-12; 42 file 'E:\test5.txt'; 43 put @1 x &thre. 44 @4 '*' 45 @5 x &pdthre. 46 @8 '#' 47 ; 48 run; NOTE: The file 'E:\test5.txt' is: Filename=E:\test5.txt, RECFM=V,LRECL=256,File Size (bytes)=0, Last Modified=25Jun2014:07:33:06, Create Time=24Jun2014:08:10:31 NOTE: 1 record was written to the file 'E:\test5.txt'. The minimum record length was 8. The maximum record length was 8. 49 50 proc sql; 50 ! drop table work.test5; NOTE: Table WORK.TEST5 has been dropped. 50 ! quit; 51 data test5; 52 infile 'E:test5.txt' truncover; 53 input @1 x13 &thre. 54 @4 sep1 $1. 55 @5 x1pd &pdthre. 56 @8 sep2 $1 57 ; 58 run; NOTE: The infile 'E:test5.txt' is: Filename=E:\test5.txt, RECFM=V,LRECL=256,File Size (bytes)=10, Last Modified=25Jun2014:07:33:06, Create Time=24Jun2014:08:10:31 NOTE: 1 record was read from the infile 'E:test5.txt'. The minimum record length was 8. The maximum record length was 8. NOTE: The data set WORK.TEST5 has 1 observations and 4 variables. 59 60 proc print data=test5; run; Obs x13 sep1 x1pd sep2 1 -12 * -12 -
... View more