Re: Reading from a file.
- To: mathgroup at smc.vnet.net
- Subject: [mg56708] Re: Reading from a file.
- From: Peter Pein <petsie at arcor.de>
- Date: Wed, 4 May 2005 00:33:56 -0400 (EDT)
- References: <d57h8g$pa3$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Namrata Khemka wrote: > Hi everyone, > > I have the following input file: > > %Object Name : left asis > 1 168 0.695873 6.544617 62.457849 82.505554 > 1 169 0.700040 8.332349 61.770844 82.268933 > 1 170 0.704207 9.848946 61.490948 82.065082 > > %Object Name : right asis > 2 168 0.695873 -6.179786 37.250156 86.780951 > 2 169 0.700040 -4.581314 36.861102 86.754218 > > %Object Name : right asis > 3 168 0.695873 -6.179786 37.250156 86.780951 > 3 169 0.695873 -6.179786 37.250156 86.780951 > > I want to read this file in the form of a matrix (real numbers), so > that the matrix has the > following (eliminate the %Object line while reading): > > 1 168 0.695873 6.544617 62.457849 82.505554 > 1 169 0.700040 8.332349 61.770844 82.268933 > 1 170 0.704207 9.848946 61.490948 82.065082 > 2 168 0.695873 -6.179786 37.250156 86.780951 > 2 169 0.700040 -4.581314 36.861102 86.754218 > 3 168 0.695873 -6.179786 37.250156 86.780951 > 3 169 0.695873 -6.179786 37.250156 86.780951 > > > So the real numbers matrix is of size [7][6] > > I have tried quite a few things but nothing seems to be working. > > Thanks in advance for the help, > > Namrata > Hi Namrata, it's not an elgant solution, but it works: In[1]:= readFile[name_String]:=Module[{result={},oneline,handle=OpenRead[name]}, If[handle==$Failed,Return[$Failed]]; While[True, oneline=Read[handle,String]; If[oneline==$Failed,result=$Failed;Break[]]; If [oneline==EndOfFile,Close[handle];Break[]]; If[StringLength[oneline]>=1, If[StringTake[oneline,1]!="%", result=Append[result, DeleteCases[ToExpression[ StringSplit[oneline," "]],Null]]; ]]]; result ] In[2]:= readFile["test.txt"]//InputForm Out[2]//InputForm= {{1, 168, 0.695873, 6.544617, 62.457849, 82.505554}, {1, 169, 0.70004, 8.332349, 61.770844, 82.268933}, {1, 170, 0.704207, 9.848946, 61.490948, 82.065082}, {2, 168, 0.695873, -6.179786, 37.250156, 86.780951}, {2, 169, 0.70004, -4.581314, 36.861102, 86.754218}, {3, 168, 0.695873, -6.179786, 37.250156, 86.780951}, {3, 169, 0.695873, -6.179786, 37.250156, 86.780951}} -- Peter Pein Berlin