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