home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #19 / NN_1992_19.iso / spool / bit / listserv / sasl / 3982 < prev    next >
Encoding:
Text File  |  1992-09-02  |  3.5 KB  |  90 lines

  1. Comments: Gated by NETNEWS@AUVM.AMERICAN.EDU
  2. Path: sparky!uunet!paladin.american.edu!auvm!VCUMVS.BITNET!RIKARD
  3. Message-ID: <SAS-L%92090110163743@VTVM2.BITNET>
  4. Newsgroups: bit.listserv.sas-l
  5. Date:         Tue, 1 Sep 1992 10:16:35 LCL
  6. Reply-To:     RIKARD@VCUMVS.BITNET
  7. Sender:       "SAS(r) Discussion" <SAS-L@UGA.BITNET>
  8. From:         RIKARD@VCUMVS.BITNET
  9. Subject:      delimited data and flowover
  10. Lines: 78
  11.  
  12. Content: Response
  13. Summary: Flowover and delimited data
  14. Release and platform: 6.07/mvs (at least)
  15. Name:    Pete Rikard
  16. Mail addresses:BITNET Rikard@vcumvs Internet rikard@vcuucc.ucc.vcu.edu
  17. Real Addresses:Virginia Commonwealth University, Computer Center
  18.                110 S. 7th Street, 4th Floor, Richmond, VA 23219
  19.                Phone (804) 786-4828    FAX: (804) 371-8464
  20. ******************************************************************
  21. --------- original note   ----------------------------------------------
  22. Ok, this has got to be simple but I must be having a bad day and am
  23. RTFMing cross eyed.
  24.  
  25. The user has comma delimited data where some of the data may wrap-around
  26. to the next line.  Here is a simplified example:
  27.  
  28. data test01;
  29.  length v1-v4 $ 11;
  30.  infile cards delimiter=',' flowover;
  31.  input v1 v2 v3  v4 @@ ;
  32.  cards;
  33. one one,two two,three three,four four,
  34. one one,two two,three three,four
  35.  four,one one,two two,three three,four four,
  36. one one,two two,three three,four four,
  37. ;;
  38. run;
  39.  
  40. proc print;
  41. run;
  42.  
  43. This produces the following output:
  44.  
  45.                                  The SAS System    13:18 Monday, August 31, 1992
  46.                                                                                7
  47.  
  48.         OBS    V1             V2             V3             V4
  49.  
  50.          1     one one        two two        three three    four four
  51.          2                    one one        two two        three three
  52.          3     four           four           one one        two two
  53.          4     three three    four four                     one one
  54.          5     two two        three three    four four
  55.  
  56. instead of the desired:
  57.                                  The SAS System    13:18 Monday, August 31, 1992
  58.                                                                                8
  59.  
  60.              OBS      V1         V2           V3            V4
  61.  
  62.               1     one one    two two    three three    four four
  63.               2     one one    two two    three three    four four
  64.               3     one one    two two    three three    four four
  65.               4     one one    two two    three three    four four
  66.  
  67. ______________________________________________________________________
  68.  
  69. It would appear that SAS treats the end of line as a delimiter, even
  70. with the DLM= option being used. I moved the data to it's own
  71. file and added the RECFM=U option to the infile statement and
  72. I get the FLOWOVER to work.
  73.  
  74. Note: RECFM= doesn't work with INFILE CARDS
  75.  
  76. RECFM=U  has SAS read "continuously" instead of treating logical
  77. records as physical records (no I don't want to discuss logical
  78. vs physical records here). When you get to a block boundary you
  79. still get a delimiter added by SAS. So for all but small datasets
  80. even this fix won't work.
  81.  
  82. The data will NOT appear as you would like unless we really have
  83. variable length records and the break between "four" on one line and
  84. "four" on the next is one character. On fixed length records (typical
  85. of SAS input streams) you will need to change the length of the
  86. variables to see the results.
  87.  
  88. Finally, with the @@ and RECFM=U you will get a "lost card"
  89. generated. Not a terrible problem but it will be there.
  90.