Re: Re: Bug in Import?

*To*: mathgroup at smc.vnet.net*Subject*: [mg54805] Re: [mg54761] Re: [mg54739] Bug in Import?*From*: Chris Chiasson <chris.chiasson at gmail.com>*Date*: Wed, 2 Mar 2005 01:26:52 -0500 (EST)*References*: <200503010658.BAA25141@smc.vnet.net>*Reply-to*: Chris Chiasson <chris.chiasson at gmail.com>*Sender*: owner-wri-mathgroup at wolfram.com

Import["test.tsv", "Words"] On Tue, 1 Mar 2005 01:58:16 -0500 (EST), Christoph Lhotka <lhotka at astro.univie.ac.at> wrote: > On Mon, 28 Feb 2005 03:27:49 -0500 (EST) > Mark Fisher <mark at markfisher.net> wrote: > > (1) I export a data set that has two identitcal rows. > > (2) I use "!!" to display the stored file, showing that it contains two > > identical rows. > > (3) I import the file, the result of which does *not* have two identical > > rows: The first row is different from the second row. > > > > Export["test.tsv", > > {{"2005-01-24", "2005-02-14"}, > > { "2005-01-24", "2005-02-14"}}] > > > > !!test.tsv --> > > > > 2005-01-24 2005-02-14 > > 2005-01-24 2005-02-14 > > > > Import["test.tsv"] --> > > > > {{2005-01-24, 2005-02-14}, > > {2005, -1, -24, 2005, -2, -14}} > > > > Surely this is a bug. > > > > (I sent this example to support at wolfram.com three weeks ago, but the > > only response I've received is that it's not a bug. Frankly, I don't > > think the tech person who responded understood the example.) > > > > I am using version 5.1 for Windows. > > > > --Mark. > > > > Hi ! > > I am not sure, if it is a bug, but you are right, it looks strange. If you > want to have more control over, how data is stored and recieved use the > functions Write and ReadList : > > You open an outputstream with OpenWrite > > In[..]:=stream = OpenWrite["test.tsv"] > Out[..]:=OutputStream[test.tsv, 113] > > and write something to the stream with Write (or WriteString, see the help > browser): > > In[..]:=Write[stream, > {{"2005-01-24", "2005-02-14"}, {"2005-01-24", "2005-02-14"}, > {"2005-01-24", "2005-02-14"}} // TableForm // StandardForm] > Out[..]:=test.tsv > > Instead of Import, you can use ReadList (or Read, to import not the whole > file): > > In[..]:=ReadList["test.tsv", {"Word", "Word"}] > Out[..]:={{2005-01-24, 2005-02-14}, {2005-01-24, 2005-02-14}, {2005-01-24, > 2005-02-14}} > > (where you can explicitly specify, how the data should be treated > ("Word","Real","Record",etc...} and the inner structure in form of nested > lists. > > So in your example {"Word","Word"} means 2 colums of type Word, which tells > Mathematica to import strings into a list of form > {{word1,word2},{word3,word4},...} > > In[..]:=FullForm[%] > Out[..]:=List[List["2005-01-24", "2005-02-14"], List["2005-01-24", > "2005-02-14"], > List["2005-01-24", "2005-02-14"]] > > Don't forget to close the output / input stream with Close after use: > In[..]:=Close[stream] > > ... > > -- Christoph Lhotka -- > University of Vienna > Institute for Astronomy > Tuerkenschanzstr. 17 > 1180 Vienna, Austria > fon. +43.1.4277.518.41 > mail. lhotka at astro.univie.ac.at > > -- Chris Chiasson Kettering University Mechanical Engineering Graduate Student 1 810 265 3161

**References**:**Re: Bug in Import?***From:*"Christoph Lhotka" <lhotka@astro.univie.ac.at>