Charles Hartman wrote:


On Aug 28, 2005, at 5:01 AM, Alex Tweedly wrote:

. . . the particular problem of adding spaces after a string to fill it out to a specified length.


It would work if the "incantation" argument of format() would accept a variable name, but I can't find a way to make it do that . . .


You can't do      format("%<myVar>d", otherVar).

But you can do
 put "%" & myVar & "d" into temp
 format(temp, otherVar)


I'm not sure you can.

I *am* sure I can - I tried it before I sent the email :-)

This in the message box

put "string" into s; put "%" & (20 - length(s)) & "d"into tTmp; put format(tTmp, s)

produces

   -1879024420

Right. You asked it to print s (which holds "string" as a 14 digit decimal number - could have got almost anything).
The format string you wanted was "%14s"

(with a total length of 14), though 'put tTmp' produces '%14' as expected. Did I miss something?

Anyway, the solution in this direction that I was thinking of is presumably too baroque to be useful -- something like

    put " " into s
    put "%" & 20 - length(s) & "d" into tTailFmt
    put myString & format(tTailFmt, s)

if you made it be
   put " " into s
put "%" & 20 - length(s) & "s" into tTailFmt -- note the "s" not "d"
   put myString & format(tTailFmt, s)

Then it will work (kind of).

It is a bit baroque - but a more serious problem is what it does in the case where myString is already longer than the desired length. The earlier solutions either left it unchanged (sounds good) or truncated to exactly the the desired length (also sounds good). This will *always* append at least one space, which doesn't sound so good to me.

--
Alex Tweedly       http://www.tweedly.net



--
No virus found in this outgoing message.
Checked by AVG Anti-Virus.
Version: 7.0.344 / Virus Database: 267.10.16/83 - Release Date: 26/08/2005

_______________________________________________
use-revolution mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to