Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2000
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2000

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Reading a file

  • To: mathgroup at smc.vnet.net
  • Subject: [mg25509] Re: [mg25475] Reading a file
  • From: Tomas Garza <tgarza01 at prodigy.net.mx>
  • Date: Thu, 5 Oct 2000 23:50:27 -0400 (EDT)
  • Sender: owner-wri-mathgroup at wolfram.com

What kind of file is it? If you have it in an Excel table, for example 
(and if you don't, I suggest you put it there for ease of use), then 
save it as tab-delimited text and close it without changing format. 
Suppose you call it "sample.txt". I read it using

In[1]:=
newFile=ReadList["c:\Math_ag\sample.txt", Word, RecordLists -> True]
Out[1]=
{{"s", "1", "even", "21", "2.1", "40"}, {"p", "1", "even", "7", "2.1",
    "3"}, {"d", "1", "even", "5", "2.1", "3"}, {"f", "1", "even", "3", 
"2.1",
    "3"}}

As you can see all the elements are now strings, since the input file 
was a text file, and you needn't specify word separators.  In order to 
use each element properly, convert the strings to expressions:

 In[2]:=
newerFile=ToExpression /@ Cases[newFile, x_, {2}]
Out[2]=
{s, 1, even, 21, 2.1, 40, p, 1, even, 7, 2.1, 3, d, 1, even, 5, 2.1, 3, 
f, 1, \
even, 3, 2.1, 3}

Now you see that:

In[3]:=
Head /@ newerFile

Out[126]=
{Symbol, Integer, Symbol, Integer, Real, Integer, Symbol, Integer, 
Symbol, \
Integer, Real, Integer, Symbol, Integer, Symbol, Integer, Real, Integer, 
\
Symbol, Integer, Symbol, Integer, Real, Integer}

Finally, regroup properly:

In[4]:=
lastFile=Partition[newerFile, 6]
Out[4]=
{{s, 1, even, 21, 2.1, 40}, {p, 1, even, 7, 2.1, 3}, {d, 1, even, 5, 
2.1,
    3}, {f, 1, even, 3, 2.1, 3}}

Tomas Garza

Mexico City


"Rod" <rodolphe6831 at my-deja.com> wrote:

> I'm trying to read the following file,
>
> s,1,even,21,2.1,40
> p,1,even,7,2.1,3.0
> d,1,even,5,2.1,3.0
> f,1,even,3,2.1,3.0
>
> I want the field separator to be "," so i tried
> 
ReadList["file",{Character,Number,Word,Number,Number,Number},WordSeparato
rs->
> ","] but it does not seem to work. Any ideas ?



  • Prev by Date: Re: Why relatively slow on Apple G4?
  • Next by Date: RE: making a function linear
  • Previous by thread: Re: Reading a file
  • Next by thread: Re: Reading a file