<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Reading in text from a file creating one observation from multiple lines in the file in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Reading-in-text-from-a-file-creating-one-observation-from/m-p/260325#M50496</link>
    <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
infile cards truncover;
input inline $50.;
cards;
****** ****** ****** ****** ******
VCR*0011730346500&amp;lt;
VIRTUAL COUPON RECORD
0011730346500         NAME-
TTL NBR OF CPNS- 2 DATE OF ISSUE-10MAR16 PNR-XXXXXX    10MAR16
FF NBR-AA  44CPH96
CC-AXXXXXXXXXXXX1002
CPN A/L FLT  CLS DATE   BRDOFF  TIME  ST F/B           STAT
 1  AA  8145  N  27MAR  YVRYYZ  1130P OK NA07ZNH5      USED
 2X AA  3783  N  28MAR  YYZPHL  959A  OK NA07ZNH5      OK
FARE CAD    TAX   CA TAX    XG TAX   XT
     TOTAL CAD 
FARE CALC YVR AA X/YTO AA PHLNUCEND ROE XT
          SQUSYCXYXA
FCMI-2
FORM OF PAYMENT
FOP-AXXXXXXXXXXXX1002           EXP-  APPROVAL CODE-
DATE OF ISSUE-10MAR16     ISSUED AT-YYZ    S7S1 A84           #
***** ***** *****
**** Found coupon with OK status: true
**** PNR has been purged: false
*XXXXX*IA&amp;lt;
#NO ITIN#
***** ***** *****
***** Send revoke command: true
VCR#REVOKE-PNR XXXXXX/10-MAR-16 WAS NOT CANCELED PRIOR TO SCHEDU
LED DEPARTURE DATE // TICKET HAS NO VALUE //&amp;lt;
VCR REVOKED
***** ***** *****
;
run;

data want (keep=ticket_no revoked);
set have end=done;
retain
  ticket_no 0
  revoked 'false'
;
if substr(inline,1,4) = 'VCR*'
then ticket_no = input(substr(inline,5,length(inline)-5),best20.);
if substr(inline,1,4) = 'VCR#' and substr(inline,5,10) = 'REVOKE-PNR'
then revoked = 'true';
if done then output;
run;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;If you want "revoked" to be truly boolean, set it to 0 in the &lt;FONT face="courier new,courier"&gt;retain&lt;/FONT&gt; statement and 1 when the right condition is encountered.&lt;/P&gt;</description>
    <pubDate>Thu, 31 Mar 2016 06:27:07 GMT</pubDate>
    <dc:creator>Kurt_Bremser</dc:creator>
    <dc:date>2016-03-31T06:27:07Z</dc:date>
    <item>
      <title>Reading in text from a file creating one observation from multiple lines in the file</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Reading-in-text-from-a-file-creating-one-observation-from/m-p/260246#M50474</link>
      <description>&lt;P&gt;Hi,&lt;BR /&gt;I have a dilema, I'm trying to create a dataset from a text file but I want to create one observation but get data from multiple lines in the text file. Here is an example. When the line begins with VCR* I want to return the data after, which is a ticket number. Then further down in the list, I want to pull if we sent the revoke comand TRUE or FALSE. The ending data set would have two columns: TICKET_NO&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; REVOKED&lt;BR /&gt;0011730346500 TRUE&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;****** ****** ****** ****** ******&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#ff0000" face="courier new,courier"&gt;VCR*0011730346500&amp;lt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;VIRTUAL COUPON RECORD&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;0011730346500&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NAME-&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;TTL NBR OF CPNS- 2 DATE OF ISSUE-10MAR16 PNR-XXXXXX&amp;nbsp;&amp;nbsp;&amp;nbsp; 10MAR16&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;FF NBR-AA&amp;nbsp; 44CPH96&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;CC-AXXXXXXXXXXXX1002&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;CPN A/L FLT&amp;nbsp; CLS DATE&amp;nbsp;&amp;nbsp; BRDOFF&amp;nbsp; TIME&amp;nbsp; ST F/B&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; STAT&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;1&amp;nbsp; AA&amp;nbsp; 8145&amp;nbsp; N&amp;nbsp; 27MAR&amp;nbsp; YVRYYZ&amp;nbsp; 1130P OK NA07ZNH5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; USED&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;2X AA&amp;nbsp; 3783&amp;nbsp; N&amp;nbsp; 28MAR&amp;nbsp; YYZPHL&amp;nbsp; 959A&amp;nbsp; OK NA07ZNH5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OK&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;FARE CAD&amp;nbsp;&amp;nbsp;&amp;nbsp; TAX&amp;nbsp;&amp;nbsp; CA TAX&amp;nbsp;&amp;nbsp;&amp;nbsp; XG TAX&amp;nbsp;&amp;nbsp; XT&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TOTAL CAD&amp;nbsp; &lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;FARE CALC YVR AA X/YTO AA PHLNUCEND ROE XT&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SQUSYCXYXA&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;FCMI-2&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;FORM OF PAYMENT&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;FOP-AXXXXXXXXXXXX1002&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EXP-&amp;nbsp; APPROVAL CODE-&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;DATE OF ISSUE-10MAR16&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ISSUED AT-YYZ&amp;nbsp;&amp;nbsp;&amp;nbsp; S7S1 A84&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;***** ***** *****&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;**** Found coupon with OK status: true&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;**** PNR has been purged: false&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;*XXXXX*IA&amp;lt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;#NO ITIN#&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;***** ***** *****&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#ff0000" face="courier new,courier"&gt;***** Send revoke command: true&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;VCR#REVOKE-PNR XXXXXX/10-MAR-16 WAS NOT CANCELED PRIOR TO SCHEDU&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;LED DEPARTURE DATE // TICKET HAS NO VALUE //&amp;lt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;VCR REVOKED&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;***** ***** *****&lt;/FONT&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 30 Mar 2016 21:49:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Reading-in-text-from-a-file-creating-one-observation-from/m-p/260246#M50474</guid>
      <dc:creator>RConly</dc:creator>
      <dc:date>2016-03-30T21:49:56Z</dc:date>
    </item>
    <item>
      <title>Re: Reading in text from a file creating one observation from multiple lines in the file</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Reading-in-text-from-a-file-creating-one-observation-from/m-p/260316#M50495</link>
      <description>One way is to define ticket_no with REATIN. Assign both your variables with substr() or other char function you prefer, based on the automatic _infile_ variable.&lt;BR /&gt;Once you assigned revoked, do an explicit output.</description>
      <pubDate>Thu, 31 Mar 2016 04:59:26 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Reading-in-text-from-a-file-creating-one-observation-from/m-p/260316#M50495</guid>
      <dc:creator>LinusH</dc:creator>
      <dc:date>2016-03-31T04:59:26Z</dc:date>
    </item>
    <item>
      <title>Re: Reading in text from a file creating one observation from multiple lines in the file</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Reading-in-text-from-a-file-creating-one-observation-from/m-p/260325#M50496</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
infile cards truncover;
input inline $50.;
cards;
****** ****** ****** ****** ******
VCR*0011730346500&amp;lt;
VIRTUAL COUPON RECORD
0011730346500         NAME-
TTL NBR OF CPNS- 2 DATE OF ISSUE-10MAR16 PNR-XXXXXX    10MAR16
FF NBR-AA  44CPH96
CC-AXXXXXXXXXXXX1002
CPN A/L FLT  CLS DATE   BRDOFF  TIME  ST F/B           STAT
 1  AA  8145  N  27MAR  YVRYYZ  1130P OK NA07ZNH5      USED
 2X AA  3783  N  28MAR  YYZPHL  959A  OK NA07ZNH5      OK
FARE CAD    TAX   CA TAX    XG TAX   XT
     TOTAL CAD 
FARE CALC YVR AA X/YTO AA PHLNUCEND ROE XT
          SQUSYCXYXA
FCMI-2
FORM OF PAYMENT
FOP-AXXXXXXXXXXXX1002           EXP-  APPROVAL CODE-
DATE OF ISSUE-10MAR16     ISSUED AT-YYZ    S7S1 A84           #
***** ***** *****
**** Found coupon with OK status: true
**** PNR has been purged: false
*XXXXX*IA&amp;lt;
#NO ITIN#
***** ***** *****
***** Send revoke command: true
VCR#REVOKE-PNR XXXXXX/10-MAR-16 WAS NOT CANCELED PRIOR TO SCHEDU
LED DEPARTURE DATE // TICKET HAS NO VALUE //&amp;lt;
VCR REVOKED
***** ***** *****
;
run;

data want (keep=ticket_no revoked);
set have end=done;
retain
  ticket_no 0
  revoked 'false'
;
if substr(inline,1,4) = 'VCR*'
then ticket_no = input(substr(inline,5,length(inline)-5),best20.);
if substr(inline,1,4) = 'VCR#' and substr(inline,5,10) = 'REVOKE-PNR'
then revoked = 'true';
if done then output;
run;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;If you want "revoked" to be truly boolean, set it to 0 in the &lt;FONT face="courier new,courier"&gt;retain&lt;/FONT&gt; statement and 1 when the right condition is encountered.&lt;/P&gt;</description>
      <pubDate>Thu, 31 Mar 2016 06:27:07 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Reading-in-text-from-a-file-creating-one-observation-from/m-p/260325#M50496</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2016-03-31T06:27:07Z</dc:date>
    </item>
  </channel>
</rss>

