LISTSERV at the University of Georgia
Menubar Imagemap
Home Browse Manage Request Manuals Register
Previous messageNext messagePrevious in topicNext in topicPrevious by same authorNext by same authorPrevious page (July 2002, week 5)Back to main SAS-L pageJoin or leave SAS-L (or change settings)ReplyPost a new messageSearchProportional fontNon-proportional font
Date:   Wed, 31 Jul 2002 09:56:27 -0400
Reply-To:   Howard_Schreier@ITA.DOC.GOV
Sender:   "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
From:   Howard_Schreier@ITA.DOC.GOV
Subject:   Re: scan function with dsd option

To avoid inserting blanks into non-null fields, and also handle runs of three or more consecutive tabs, operate only on adjacent delimiters and use two nested invocations of TRANWRD.

Something like (not tested):

_infile_ = tranwrd(tranwrd(_infile_,'0909'x,'092009'x),'0909'x,'092009'x);

where 09 is the ASCII hex code for the tab and 20 is the ASCII hex code for the blank.

See http://www.listserv.uga.edu/cgi-bin/wa?A2=ind0205A&L=sas-l&P=R1837

On Tue, 30 Jul 2002 20:18:23 -0500, Kevin Myers <KevinMyers@AUSTIN.RR.COM> wrote:

>One possibility: Use the tranwrd function to translate each delimiter >character into a delimiter character either preceded or followed by some >non-delimiter character (such as a space) that wouldn't interfere with your >actual data. That would allow you to use the scan function without >interference from consecutive delimiters. For example (non-tested code!): > >myvar=scan(tranwrd(_infile_,'09'x,'2009'x),fieldnum,'09'x); > >HTH. > >s/KAM > > >----- Original Message ----- >From: "Walter Shafron" <waltshaf@ABARE.GOV.AU> >Newsgroups: bit.listserv.sas-l >To: <SAS-L@LISTSERV.UGA.EDU> >Sent: Tuesday, July 30, 2002 7:20 PM >Subject: scan function with dsd option > > >> I am reading a series of tab-delimited files, about 1000 characters >> wide and want to read/extract certain fields out of this. >> >> One way would be to jump columns using data step pointer controls, but >> even with tab-delimited files the columns work in spaces (I need field >> skips, not column skips) >> . >> Another idea was to read the wholeline (using the _infile_ variable) >> and scan for the fields that I wanted. Unfortunately the scan function >> treats contiguous delimiters as one. >> >> Any ideas would be appreciated. >> >> Walter Shafron


Back to: Top of message | Previous page | Main SAS-L page