Thanks to all; here's what looks to be best solution
- To: mathgroup at smc.vnet.net
- Subject: [mg36677] Thanks to all; here's what looks to be best solution
- From: "1.156" <rob at piovere.com>
- Date: Wed, 18 Sep 2002 02:10:18 -0400 (EDT)
- References: <alrtp5$hc2$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Thanks to all who helped me on this. Tomas in Mexico appears to have nailed this thing. Here is what I'm using now: In[1]:= a=ReadList["197-tst.txt",Word,RecordLists->True, WordSeparators->None]; In[2]:= flds={{25,31}, {32,39},{40,46},{47,54},{55,62},{63,70},{71,78},{79,86},{87, 94},{95,102},{103,110}}; Define this function: In[3]:= f[x_]:=ToExpression[StringTake[x[[1]],#]]&/@flds Now, map this function onto a: In[8]:= f/@a Out[8]= {{5935.8,5946.66,27.06,-1281.9,-229.,321.,317.,367.,-115.,126.,146.},{5935.8 .... ************ The data is now in a matrix of numbers and each variable is in a column. Now I just transpose this to get each variable in a row for easy access (apparently Mathematica has no way to directly access a column in a matrix, you gotta transpose I think) Rob "1.156" wrote: > I've got to extract some numbers from a file that are in lines of text. Since the line contents are not numbers, I presume I must pull the line out as a string. Here I start by pulling out just one line: > > 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? > > Thanks, Rob