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 (October 2006, week 1)Back to main SAS-L pageJoin or leave SAS-L (or change settings)ReplyPost a new messageSearchProportional fontNon-proportional font
Date:   Tue, 3 Oct 2006 16:03:13 -0400
Reply-To:   "data _null_;" <datanull@GMAIL.COM>
Sender:   "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
From:   "data _null_;" <datanull@GMAIL.COM>
Subject:   long macro variable in SASHELP.VMACRO?
Content-Type:   text/plain; charset=ISO-8859-1; format=flowed

Imagine the following data set is the value of one macro variable as it would look in SASHELP.VMACRO. I have shortened the length of value from 200 to 60, to make it easier to "see" everything.

data work.offset; infile cards; attrib offset length=8; attrib value length=$60 ; input offset 5. +1 value $char60.; cards; 0 D:\Program Files\SASOnlineDocV8\sasdoc\saspdf\win\a01.pdf|D: 60 \Program Files\SASOnlineDocV8\sasdoc\saspdf\win\a02.pdf|D:\P 120 rosgram Files\SASOnlineDocV8\sasdoc\saspdf\win\a03.pdf|D:\Pro 180 gram Files\SASOnlineDocV8\sasdoc\saspdf\win\a04.pdf|D:\Progr 240 am Files\SASOnlineDocV8\sasdoc\saspdf\win\a05.pdf|D:\Program 300 Files\SASOnlineDocV8\sasdoc\saspdf\win\c01.pdf|D:\Program F 360 iles\SASOnlineDocV8\sasdoc\saspdf\win\c02.pdf|D:\Program Fil 420 es\SASOnlineDocV8\sasdoc\saspdf\win\c03.pdf|D:\Program Files 480 \SASOnlineDocV8\sasdoc\saspdf\win\c04.pdf|D:\Program Files\S 540 ASOnlineDocV8\sasdoc\saspdf\win\c05.pdf|D:\Program Files\SAS 600 OnlineDocV8\sasdoc\saspdf\win\c06.pdf|D:\Program Files\SASOn 660 lineDocV8\sasdoc\saspdf\win\c07.pdf|D:\Program Files\SASOnli 720 neDocV8\sasdoc\saspdf\win\c08.pdf|D:\Program Files\SASOnline 780 DocV8\sasdoc\saspdf\win\c09.pdf|D:\Program Files\SASOnlineDo 840 cV8\sasdoc\saspdf\win\c10.pdf|D:\Program Files\SASOnlineDocV 900 8\sasdoc\saspdf\win\c11.pdf|D:\Program Files\SASOnlineDocV8\ 960 sasdoc\saspdf\win\c12.pdf|D:\Program Files\SASOnlineDocV8\sa 1020 sdoc\saspdf\win\c13.pdf|D:\Program Files\SASOnlineDocV8\sasd 1080 oc\saspdf\win\c14.pdf|D:\Program Files\SASOnlineDocV8\sasdoc 1140 \saspdf\win\c15.pdf|D:\Program Files\SASOnlineDocV8\sasdoc\s 1200 aspdf\win\c16.pdf|D:\Program Files\SASOnlineDocV8\sasdoc\sas 1260 pdf\win\c17.pdf|D:\Program Files\SASOnlineDocV8\sasdoc\saspd 1320 f\win\c18.pdf|D:\Program Files\SASOnlineDocV8\sasdoc\saspdf\ 1380 win\c19.pdf|D:\Program Files\SASOnlineDocV8\sasdoc\saspdf\wi 1440 n\c20.pdf|D:\Program Files\SASOnlineDocV8\sasdoc\saspdf\win\ 1500 c21.pdf|D:\Program Files\SASOnlineDocV8\sasdoc\saspdf\win\c2 1560 2.pdf|D:\Program Files\SASOnlineDocV8\sasdoc\saspdf\win\c23. 1620 pdf|D:\Program Files\SASOnlineDocV8\sasdoc\saspdf\win\cae.pd 1680 f|D:\Program Files\SASOnlineDocV8\sasdoc\saspdf\win\idx.pdf| 1740 D:\Program Files\SASOnlineDocV8\sasdoc\saspdf\win\pdfidx.htm ;;;; run;

I want to parse each | (pipe) delimited word and create one observation as...

D:\Program Files\SASOnlineDocV8\sasdoc\saspdf\win\a01.pdf D:\Program Files\SASOnlineDocV8\sasdoc\saspdf\win\a02.pdf <some lines omitted> D:\Program Files\SASOnlineDocV8\sasdoc\saspdf\win\cae.pdf D:\Program Files\SASOnlineDocV8\sasdoc\saspdf\win\idx.pdf D:\Program Files\SASOnlineDocV8\sasdoc\saspdf\win\pdfidx.htm

I want to do it in such a way that I don't have to worry about the length limitation of SAS character variables. I had programmed a partial solution by loading "value" into a one long character variable but if the macro variable is longer than 32767 then that doesn't work.

I know I can do this with macro "arrays" but I won't want that. I want to go straight to data set.

I have written some code that gets close but I won't pollute the list with that garbage.

Thanks in advance for your help. Let me know if I need to explain further.


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