Statalist


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

st: RE: reading txt-file without end-of-line delimiter and uneven record length


From   "Steichen, Thomas J." <[email protected]>
To   "'[email protected]'" <[email protected]>
Subject   st: RE: reading txt-file without end-of-line delimiter and uneven record length
Date   Wed, 19 Nov 2008 17:34:01 -0500

Even,

Here is some code that reads the file and displays selected values:

program read_longfile
  version 10.1
  gettoken mname 0 : 0
  syntax using/

* open input file
  tempname hdl
  file open `hdl' using `"`using'"', read binary

* get first record (as strings)
  file read `hdl' %11s val_11 %1963s junk
  di %11.0f real("`val_11'")

* loop over 100 records
  forvalues i = 1(1)100 {

*   get 6-byte var (as string)
    file read `hdl' %6s val_6
    di %3.0f `i' ": " %6.0f real("`val_6'")

*   loop over 151 13-byte vars (as strings)
    forvalues j = 1(1)151 {
      file read `hdl' %13s val_135
    }

  }
  di %13.5f real("`val_135'")

* close input file
  file close `hdl'

  end

* call via: read_longfile, using "filename"



-----------------------------------
Thomas J. Steichen
[email protected]
-----------------------------------

-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Even Bergseng
Sent: Wednesday, November 19, 2008 3:00 PM
To: [email protected]
Subject: st: reading txt-file without end-of-line delimiter and uneven record length

Dear listers!

I have a txt-file without end-of-line delimiter and uneven record length that I want to read into Stata. The lack of end-of-lin delimiters and hence all observations on one line, suggests using the _lrecl option of the -infile2- command. The uneven record length suggests otherwise.

There is only one uneven record (1975 bytes) which occurrs at the beginning of the file. All other records are 1969 bytes. There are 100 records excluding the first.

I have tried to use -file read- and then -file write- to get rid of the first uneven record to be able to use -infile-, but the total line length and thus the macro from -file read- makes Stata state "too few quotes" when I try to write it with -file write-.

My code for the -file- command is as follows:

****
tempname OUT1
file open `OUT1' using "$sima\OUT1.dat", read write text
file seek `OUT1' 1975
file read `OUT1' line
file close `OUT1'
tempname RESULT
file open `RESULT' using "$sima\RESULT.dat", read write text
file write `RESULT' (`"`macval(line)'"')
file close `RESULT'
***

Any hints on how th read the txt-file?

best regards,
Even Bergseng

*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/

CONFIDENTIALITY  NOTE:  This e-mail message, including any attachment(s), contains information that may be confidential, protected by the attorney-client or other legal privileges, and/or proprietary non-public information. If you are not an intended recipient of this message or an authorized assistant to an intended recipient, please notify the sender by replying to this message and then delete it from your system. Use, dissemination, distribution, or reproduction of this message and/or any of its attachments (if any) by unintended recipients is not authorized and may be unlawful.

*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/



© Copyright 1996–2024 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index