Help using Base SAS procedures

How to read txt raw file in to SAS then output to txt wothout change its location?

Reply
Regular Contributor
Posts: 209

How to read txt raw file in to SAS then output to txt wothout change its location?

Hello all;

 

I want read a very large .txt file in to SAS and make some midification on its value. after doing that I want to output them back to raw .txt file. but I don't want change any characters' original location in txt file. what can I do?

 

Thanks!

Trusted Advisor
Posts: 1,141

Re: How to read txt raw file in to SAS then output to txt wothout change its location?

Hi,

 

I am sure others can provide better suggestions. For now:

- do you use Enterprise Guide? If you do, you might fins useful this tip from Chris Hemedinger https://communities.sas.com/t5/SAS-Enterprise-Guide/Importing-Extremely-Large-Text-File/td-p/152222

- anyway, you could always load the data of the txt file into a SAS dataset, then you can make the transformation on the dataset, then load the dataset into a different txt file.

 

Probably there is another method much more optimal, with less steps, but, for now can now work with this procedure

 

If you need support with the statements, you can always give a look into the SAS help manual, or ask around over here Smiley Happy

Super User
Super User
Posts: 6,502

Re: How to read txt raw file in to SAS then output to txt wothout change its location?

There is an example of how to do that in the help pages for the INFILE statement.

http://support.sas.com/documentation/cdl/en/lestmtsref/63323/HTML/default/viewer.htm#n1rill4udj0tfun...

 

Example 6: Updating an External File

This example shows how to use the INFILE statement with the SHAREBUFFERS option and the INPUT, FILE, and PUT statements to update an external file in place:
data _null_;
     /* The INFILE and FILE statements     */
     /* must specify the same file.       */
   infile file-specification-1 sharebuffers;
   file file-specification-1;
   input state $ 1-2 phone $ 5-16; 
     /* Replace area code for NC exchanges */
   if state= 'NC' and substr(phone,5,3)='333' then
     phone='910-'||substr(phone,5,8);
   put phone 5-16;
run;
Super User
Posts: 10,538

Re: How to read txt raw file in to SAS then output to txt wothout change its location?

I strongly recommend that while developing this process that you write to a different file. You can use options like OBS= and FIRSTOBS= to process just a few specified lines of a file.

 

 

And unless you do not have space to store the original and the modified files I would recommend creating a new file in general. Writing over your only copy of a set is rife with possibilities of corrupt data.

Ask a Question
Discussion stats
  • 3 replies
  • 433 views
  • 7 likes
  • 4 in conversation