-----Urspr|ngliche Nachricht-----
Von: David Withoff <withoff at wolfram.com> An: mathgroup at smc.vnet.net
<mathgroup at smc.vnet.net> Datum: Donnerstag, 1. Oktober 1998 02:44
Betreff: [mg14189] Re: [mg14175] Outputting Strings to a file
>> I am trying to output text to a file. My data is in an array such as:
>>
>> {1,"AL",0.500000,0.500000,0.500000,0.300000,1.000000}
>>
>> or
>>
>> {"Line One","Line Two"}
>>
>> The program that is going to read the output file doesn't want the
>> quotes or the commas.
>>
>> I want the final file to look like:
>>
>> Line One
>> Line Two
>> 1 Al 0.500000 0.500000 0.500000 0.300000 1.000000
>>
>> How do I get Mathematica to output text without the quotes? If I can
>> get that I'm pretty sure I can get the numbers and spacing correct.
>>
>> I'm running Mathmatica 3.0 on a powermac if that is important.
>>
>> Thanks for any help.
>>
>> --
>> Tom Murray
>>
>> I believe in what I see
>> I believe in what I hear
>> I believe that what I'm feeling
>> Changes how the world appears
>>
>> Rush - "TOTEM" - Test For Echo
>
>Here is one possibility. I expect that some variant of this, or other
>formatting functions, will do what you want.
>
>In[6]:= expr = {1,"AL",0.500000,0.500000,0.500000,0.300000,1.000000}
>
>Out[6]= {1, AL, 0.5, 0.5, 0.5, 0.3, 1.}
>
>In[7]:= Infix[expr /. p_Real -> PaddedForm[p, {7, 6}], " "]
>
>Out[7]= 1 AL 0.500000 0.500000 0.500000 0.300000 1.000000
>
>In[8]:= Write["file", OutputForm[
> Infix[expr /. p_Real -> PaddedForm[p, {7, 6}], " "] ]
> ]
>
>In[9]:= !!file
>1 AL 0.500000 0.500000 0.500000 0.300000 1.000000
>
>If you can get what you want formatted on the screen (probably in
>OutputForm), then you can write it to a file, as the same functionality
>is used for both purposes.
>
>Dave Withoff
>Wolfram Research
>
>
Hi MathGroupers!
I think that there are enough built-in features in Mathematica to get
adequate output.
Let test1 and test2 be defined as follows:
test1 = {1,"AL",0.500000,0.500000,0.500000,0.300000,1.000000}; test2 =
{"Line One","Line Two"};
Besides, we have an OutputStream str1 (e.g. opend by str1 =
OpenWrite[...])
Then we can write (using Mathematica2.2)
WriteString[
str1,
TableForm[test1,TableDirections->{Row}] ];
WriteString[str1,"\n"];
to get the first list as a row with a newline at the end:
1 AL 0.5 0.5 0.5 0.3 1.
Another option of TableForm can be used to control the spacing, like in
WriteString[
str1,
TableForm[test2,TableDirections->{Column},TableSpacing->{0}] ];
WriteString[str1,"\n"];
which outputs the second list as a column:
Line One
Line Two
Hope this helps.
Clemens