Using a variable as a prefix argument to a format directive
Asked Answered
T

1

5

I need to print something with variable number of spaces before it. For example if I need to print 5 spaces before my text, I will do:

(format T "%5T My Text")
Output:     My Text

In place of 5, can I use a variable and be able to pass on a value to it? What I am looking for is like:

(format T "%(~d)T My Text" 5)
output:     My Text
Tetchy answered 10/11, 2013 at 16:35 Comment(0)
G
10

Try

(format T "~vT My Text" 5)

See 22.3 Formatted Output:

In place of a prefix parameter to a directive, V (or v) can be used. In this case, format takes an argument from args as a parameter to the directive. The argument should be an integer or character. If the arg used by a V parameter is nil, the effect is as if the parameter had been omitted. # can be used in place of a prefix parameter; it represents the number of args remaining to be processed. When used within a recursive format, in the context of ~? or ~{, the # prefix parameter represents the number of format arguments remaining within the recursive call.

Glazing answered 10/11, 2013 at 16:53 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.