RE: trying to pull numbers out of a string from a file.
- To: mathgroup at smc.vnet.net
- Subject: [mg36623] RE: [mg36595] trying to pull numbers out of a string from a file.
- From: "Annetts, Dave (E&M, North Ryde)" <David.Annetts at csiro.au>
- Date: Fri, 13 Sep 2002 23:33:33 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
Hi Rob,
> inFile = OpenRead["197-tst.txt"]
> y = ReadList[inFile, String, 1, RecordLists -> True]
> Close[inFile];
>
> This appears to pull in a line. Now I want to take characters
> 25 to 110 to get just the stuff I want:
> y1=StringTake[y ,{25,110}];
>
> Here's the output. StringTake doesn't seem to work.
>
> StringTake[{aEX-004 2002197 0 0 0 5935.80 5946.66 27.06
> -1281.9 -229. 321. 317. 367. -115. 126.
> 146. -410. -426.000000EF 75.}, {25, 110}]
>
> It doesn't take loading another package as far
> as I can tell from the help. I'm thinking that it doesn't
> work because it's trying to work on a list
> rather than a string. I've tried Flatten, and other stuff to
> try to get to just a string and not a list but
> nothing has worked so far. I'm a long way from getting to
> those numbers in there but heck, I
> can't even get to the string. Can anyone point me in the
> right direction?
You might try
lst = Read[StringToStream[y1], {Word, Table[Number, {16}], Word,
Number}]//Flatten;
You can then pick the numbers (or words) from the list "lst".
A quicker alternative might be as follows:-
ifile = ReadList["197-tst.txt", {Word, Table[Number, {16}], Word, Number}];
Regards,
Dave.
==========================================
Dr. David Annetts
EM Modelling Analyst
CSIRO DEM Tel: +612 9490 5416
North Ryde Fax: +612 9490 5467
Australia David.Annetts at csiro.au
===========================================