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 (September 2007, week 1)Back to main SAS-L pageJoin or leave SAS-L (or change settings)ReplyPost a new messageSearchProportional fontNon-proportional font
Date:         Fri, 7 Sep 2007 09:48:24 -0400
Reply-To:     Jack Wozek <Jack.A.Wozek@BOS.FRB.ORG>
Sender:       "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
From:         Jack Wozek <Jack.A.Wozek@BOS.FRB.ORG>
Subject:      Problem importing some pipe-delimited text files
Content-Type: text/plain; charset="US-ASCII"

Hi.

I need to read in a sizable volume of pipe-delimited text files. Using some code adapted from "Reading a Pipe-Delimited File with in a Comma-Delimited File" (Carey Smoak), my plan is to read the file names from the directory, put the file names into separate macrovariables, and use proc import inside a do loop (copied below). I opted for the simple proc import because the files are not standard (different combinations of column, but all have a common denominator of columns I need). I want this to be as automated and maintenance-free as possible since this will be a repeated process completed by others. However, I am running into an error with some files. One of the columns I am reading has a text description, and in some cases it is very long. When a long description appears in the first row of data (or the first 20 I gather), proc import guesses an informat/format that is unknown to SAS (see error below). A past posting (Howard Schreier, Dec 26, 2002) suggested block copying the data step code generated in the log by proc import, fixing the error, and then re-running the data step code. I tried this and it works. However, I would like something more efficient since I am dealing with thousands of files.

Any ideas how to code around this problem? Or, any ideas ideas how to uniformly identify when this error occurs to speed up the manual fix process?

Thanks.

Jack

/* Import Code

%macro importras; %do i = 1 %to &filecount;

PROC IMPORT OUT= data.&&fileb&i DATAFILE= "&datalocation2.&&file&i...txt" DBMS=DLM REPLACE; Delimiter = "|"; getnames = yes; RUN; %end; %mend;

/* Error

130 informat SDR_DESCRIPTION_TEXT $12E3. ; ----- 228 22 - 200 ERROR 228-185: Informat 12E3 is unknown.

ERROR 22-322: Syntax error, expecting one of the following: a name, -, ;, DEFAULT, _ALL_, _CHARACTER_, _CHAR_, _NUMERIC_.

ERROR 200-322: The symbol is not recognized and will be ignored.


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