ReadList, mix Words & Numbers?
- To: mathgroup at smc.vnet.net
- Subject: [mg30880] ReadList, mix Words & Numbers?
- From: Robert Love <rlove at neosoft.com>
- Date: Fri, 21 Sep 2001 04:04:19 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
I'm trying to read a text file, the so called Yuma format of the GPS
Almanac. Each entry is 15 lines line, the last being a blank and the
first being a string I don't care about. I want to build lists of
numbers from the file. I see how to read whole records but can't find
how to extract just the numbers I want.
A short version of the file looks like (best in monospaced font):
******** Week 99 almanac for PRN-01 ********
ID: 01
Health: 000
Eccentricity: 0.5095005035E-002
Time of Applicability(s): 319488.0000
Orbital Inclination(rad): 0.9654515552
Rate of Right Ascen(r/s): -0.7623174679E-008
SQRT(A) (m 1/2): 5153.727051
Right Ascen at Week(rad): 0.2834075570E+001
Argument of Perigee(rad): -1.702684969
Mean Anom(rad): -0.1280187112E+001
Af0(s): 0.1859664917E-003
Af1(s/s): 0.0000000000E+000
week: 99
******** Week 99 almanac for PRN-02 ********
ID: 02
Health: 000
Eccentricity: 0.2133750916E-001
Time of Applicability(s): 319488.0000
Orbital Inclination(rad): 0.9324469998
Rate of Right Ascen(r/s): -0.8183198006E-008
SQRT(A) (m 1/2): 5153.597656
Right Ascen at Week(rad): -0.1453525443E+001
Argument of Perigee(rad): -2.027413647
Mean Anom(rad): 0.1975929042E+001
Af0(s): -0.4577636719E-004
Af1(s/s): -0.7275957614E-011
week: 99
Each non blank line that is not the header string consists of a label, a colon,
and a number. Reading like this:
rawdata = ReadList["almanac.txt",
Table[{Record}, {14}], RecordSeparators -> {"\n"}]
gives me uniform records but my other attempts fail.
rawdata = ReadList["Macintosh HD:Users:rlove:almanac.txt",
{Record, Table[{Word, Word}, {13}]}, RecordSeparators -> {"\n"},
WordSeparators -> {":"}, NullRecords -> False]
gives me good results but when I change to Number, like this:
rawdata = ReadList["Macintosh HD:Users:rlove:almanac.txt",
{Record, Table[{Word, Number}, {13}]}, RecordSeparators -> {"\n"},
WordSeparators -> {":"}, NullRecords -> False]
I get an error about reading a number.
My general question is: How do I read a line of mixed text and numbers and
extract just the numbers? All advice appreciated.