How to make a formatted string ?
Lars T. Kyllingstad
public at kyllingen.NOSPAMnet
Wed Mar 17 06:58:20 PDT 2010
Gabriel Laskar wrote:
> On 03/17/2010 12:59 PM, Gabriel Laskar wrote:
>> I am searching how to do a formatted string like with sprintf()
>> I have found std.format.formattedWrite() but when I try :
>> Appender!(string) msg;
>> formattedWrite(msg, "toto: %0", 42);
>> It fails with :
>> core.exception.RangeError@�(1582): Range violation
>> I have also found std.string.format, but it seems to fail also.
> Oops, I'm stupid, It is not %0, but %s... std.string.format is good.
> Now I need to pass an array of char instead of va_args, I have found
> a work around, but it seems bad :
> string formatArray(char args)
> switch (args.length)
> case 1: return format(args);
> case 2: return format(args, args);
> // ...
> If someone have something better...
It depends on what you are trying to do.
char a = ["hello".dup, "world".dup];
string fmt = format(a);
// fmt is now "[hello,world]"
char a = ["hello %s %s world".dup, "foo".dup, "bar".dup];
string fmt = format(a, a[1 .. $]);
// fmt is now "hello foo bar world"
More information about the Digitalmars-d-learn