Re: Importing Dos Data into Linux Mathematica?
- To: mathgroup at smc.vnet.net
- Subject: [mg14479] Re: Importing Dos Data into Linux Mathematica?
- From: "P.J. Hinton" <paulh>
- Date: Fri, 23 Oct 1998 20:58:57 -0400
- Organization: "Wolfram Research, Inc."
- References: <70k4lr$enh@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
On 21 Oct 1998, Charles J. Koehler wrote:
> I am having a problem in trying to import data files that are in
> dos/ascii format. There is generally a header of 7 rows and 6 col. of
> data. The columns are separated with commas. Each row of the data ends
> with a ^M character.
>
> I am able to read in the first row of data but nothing more. I assume I
> need to strip of the ^M that is attached to the last columns of data?
>
> Does anyone have experience with this? Your assistance would be
> appreicated.
Here is a Mathematica function that you can use to convert your files
from DOS text to Unix format:
DOSToUnix[filename_String] :=
Module[{stmpin, stmpout, nextbyte}, stmpin = OpenRead[filename];
stmpout = OpenTemporary[];
While[(nextbyte = Read[stmpin, Byte]) =!= EndOfFile,
If[nextbyte != 13, WriteString[stmpout,
FromCharacterCode[nextbyte]]]];
(DeleteFile[#[[2]]]; Apply[CopyFile, #]; DeleteFile[#[[1]]]) & [
(Close /@ {stmpout, stmpin})]]
For larger files, you will probably want to use shell utility of some
sort to do the job. Many Unix systems have a utility known as dos2unix
that does the same job as the code above. If there isn't, you can get
a copy of a similar utility known as d2u from the Sunsite archive
mirrors. The main site is:
ftp://sunsite.unc.edu/
but you should check the mirrors list to find a server closer to you.
The file is in the directory /pub/linux/utils/text, and the archive is
named d2u-1.3.tar.gz. The author of the software notes that the source
code was written for Linux, but it should compile on any Unix compiler
that supports ANSI C.
--
P.J. Hinton
Mathematica Programming Group paulh at wolfram.com Wolfram
Research, Inc. http://www.wolfram.com/~paulh/
Disclaimer: Opinions expressed herein are those of the author alone.