MathGroup Archive 2009

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

Search the Archive

Re: Print numbers to ASCII file with precise column widths

  • To: mathgroup at smc.vnet.net
  • Subject: [mg100419] Re: Print numbers to ASCII file with precise column widths
  • From: dh <dh at metrohm.com>
  • Date: Wed, 3 Jun 2009 01:10:16 -0400 (EDT)
  • References: <gvq0c8$muk$1@smc.vnet.net>


Hi Chonny,

I think PaddedForm mainly deals with real numbers. Therefore, the 

decimal separator is accounted for by "number of digits". Therefore, for 

integers, you get one place more than indicated.

To obtain an e-representation with a given fileswidth you may e.g. try:

=======================

dat = Pi 1. 10^-10;

fieldwidth = 8;

t = ToString@

    NumberForm[dat, {4, 2},

     NumberFormat -> (Row[{#1, "e", If[#3 === "", "0", #3]}] &),

     ExponentFunction -> (# &)];

While[StringLength[t] < fieldwidth, t = " " <> t];

t

==============================

Daniel





Chonny wrote:

> Hi,

>      I want to generate some "simple" ASCII files suitable for reading

> by old Fortran programs, which expect numbers in precise formatted

> columns, e.g.,  "FORMAT(I5,F10.3,E10.5)".  I've been trying all sorts

> of variations of PaddedForm, FortranForm, OutputForm, .....

> 

>      Here's an example with a simple negative integer:

> 

> strm = OpenWrite["testout.txt"];

> WriteString[strm, ToString[ PaddedForm[-11, 5] ] <> "\n"];

> WriteString[strm, "1234567890"];

> Close[strm];

> FilePrint["testout.txt"];

> 

>   -11

> 1234567890

> 

> The font in this post doesn't show it, but the "-11" ends in the 6th

> column, not the 5th.  And then I need to tackle floats with

> exponents!!   I obviously don't understand the underlying Mathematica

> V7 output functionality.

> 




  • Prev by Date: Re: Re: Min function returns Min[2.05875,] instead of
  • Next by Date: Re: RandomReal gets stuck
  • Previous by thread: Re: FindRoot inside FindMinimum
  • Next by thread: Re: Print numbers to ASCII file with precise column widths