Forums > MaxMSP

using sprintf with a comma

November 16, 2006 | 8:26 pm

Hello, I have a basic question about sprintf. I have a patch where I’m
sending a message to the ‘forward’ object that tells the object what receive
to send to and what to actually send. I want to use sprintf to do that but
the forward object requires a comma in its message and sprintf gets weird
with commas. My patch is below. Any advice?

max v2;
#N vpatcher 114 76 710 364;
#P window setfont "Sans Serif" 9.;
#P number 354 63 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P window linecount 1;
#P message 267 65 30 196617 duck;
#P number 139 204 290 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 139 181 67 196617 receive duck;
#P message 138 101 90 196617 send duck , 12345;
#P newex 267 100 97 196617 sprintf send %s %f;
#P newex 138 129 47 196617 forward;
#P window linecount 3;
#P comment 363 100 100 196617 I need sprintf to somehow insert a comma after
%s;
#P connect 2 0 1 0;
#P connect 3 0 1 0;
#P connect 4 0 5 0;
#P connect 6 0 2 0;
#P connect 7 0 2 1;
#P pop;


November 16, 2006 | 9:10 pm

if u look closely at the text of your patch mode you will find your answer :

> #P message 138 101 90 196617 send duck , 12345;

put a backslash before your comma,
best


November 17, 2006 | 11:29 am

On 16 nov. 06, at 21:26, Nic Zwart wrote:

> Hello, I have a basic question about sprintf. I have a patch where
> I’m sending a message to the ‘forward’ object that tells the object
> what receive to send to and what to actually send. I want to use
> sprintf to do that but the forward object requires a comma in its
> message and sprintf gets weird with commas. My patch is below.
> Any advice?

Hi,

It’s a common misunderstanding. The comma have a special behavior of
the message box object, where it is used to separate elements. So if
you really want the "normal comma" character you need to put a
backslash.

I would prefer the version without the message boxes (avoiding UI
objects is always fine, when you don’t need the UI aspect).

Best,
ej

#P window setfont "Sans Serif" 9.;
#P window linecount 2;
#P message 860 165 74 196617 ; duck 9;
#P window linecount 1;
#P newex 860 135 30 196617 t b s;
#P number 981 63 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P message 860 65 30 196617 duck;
#P newex 860 100 131 196617 sprintf set \; %s %ld;
#P comment 842 43 260 196617 why not using the send feature of the
message box?;
#P message 110 65 30 196617 duck;
#P newex 110 176 68 196617 prepend send;
#P number 68 64 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 68 215 65 196617 forward duk;
#P comment 212 34 260 196617 change the contents of the message box
, and trigger it !;
#P newex 583 195 47 196617 forward;
#P message 583 165 74 196617 send duck , 8;
#P newex 583 135 30 196617 t b s;
#P number 704 63 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P message 583 65 30 196617 duck;
#P newex 583 100 131 196617 sprintf set send %s \, %ld;
#P newex 354 177 68 196617 prepend send;
#P newex 267 152 97 196617 unpack 0 s;
#P newex 267 126 97 196617 zl rot 1;
#P number 354 63 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P message 267 65 30 196617 duck;
#P number 139 317 290 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 139 294 67 196617 receive duck;
#P newex 267 100 97 196617 pack s 0;
#P newex 267 216 47 196617 forward;
#P comment 538 43 260 196617 change the contents of the message box
, and trigger it !;
#P connect 23 0 22 0;
#P connect 24 0 22 1;
#P connect 22 0 25 0;
#P connect 25 1 26 0;
#P connect 25 0 26 0;
#P connect 5 0 2 0;
#P connect 6 0 2 1;
#P connect 3 0 4 0;
#P connect 2 0 7 0;
#P connect 7 0 8 0;
#P connect 8 1 9 0;
#P connect 8 0 1 0;
#P connect 9 0 1 0;
#P connect 11 0 10 0;
#P connect 12 0 10 1;
#P connect 10 0 13 0;
#P connect 13 0 14 0;
#P connect 13 1 14 0;
#P connect 14 0 15 0;
#P connect 20 0 19 0;
#P connect 19 0 17 0;
#P connect 18 0 17 0;
#P window clipboard copycount 27;


November 17, 2006 | 8:50 pm

Great! thanks for your help.

nic

On 11/17/06, Emmanuel Jourdan wrote:
>
> On 16 nov. 06, at 21:26, Nic Zwart wrote:
>
> > Hello, I have a basic question about sprintf. I have a patch where
> > I’m sending a message to the ‘forward’ object that tells the object
> > what receive to send to and what to actually send. I want to use
> > sprintf to do that but the forward object requires a comma in its
> > message and sprintf gets weird with commas. My patch is below.
> > Any advice?
>
> Hi,
>
> It’s a common misunderstanding. The comma have a special behavior of
> the message box object, where it is used to separate elements. So if
> you really want the "normal comma" character you need to put a
> backslash.
>
> I would prefer the version without the message boxes (avoiding UI
> objects is always fine, when you don’t need the UI aspect).
>
> Best,
> ej
>
> #P window setfont "Sans Serif" 9.;
> #P window linecount 2;
> #P message 860 165 74 196617 ; duck 9;
> #P window linecount 1;
> #P newex 860 135 30 196617 t b s;
> #P number 981 63 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P message 860 65 30 196617 duck;
> #P newex 860 100 131 196617 sprintf set \; %s %ld;
> #P comment 842 43 260 196617 why not using the send feature of the
> message box?;
> #P message 110 65 30 196617 duck;
> #P newex 110 176 68 196617 prepend send;
> #P number 68 64 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P newex 68 215 65 196617 forward duk;
> #P comment 212 34 260 196617 change the contents of the message box
> , and trigger it !;
> #P newex 583 195 47 196617 forward;
> #P message 583 165 74 196617 send duck , 8;
> #P newex 583 135 30 196617 t b s;
> #P number 704 63 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P message 583 65 30 196617 duck;
> #P newex 583 100 131 196617 sprintf set send %s \, %ld;
> #P newex 354 177 68 196617 prepend send;
> #P newex 267 152 97 196617 unpack 0 s;
> #P newex 267 126 97 196617 zl rot 1;
> #P number 354 63 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P message 267 65 30 196617 duck;
> #P number 139 317 290 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P newex 139 294 67 196617 receive duck;
> #P newex 267 100 97 196617 pack s 0;
> #P newex 267 216 47 196617 forward;
> #P comment 538 43 260 196617 change the contents of the message box
> , and trigger it !;
> #P connect 23 0 22 0;
> #P connect 24 0 22 1;
> #P connect 22 0 25 0;
> #P connect 25 1 26 0;
> #P connect 25 0 26 0;
> #P connect 5 0 2 0;
> #P connect 6 0 2 1;
> #P connect 3 0 4 0;
> #P connect 2 0 7 0;
> #P connect 7 0 8 0;
> #P connect 8 1 9 0;
> #P connect 8 0 1 0;
> #P connect 9 0 1 0;
> #P connect 11 0 10 0;
> #P connect 12 0 10 1;
> #P connect 10 0 13 0;
> #P connect 13 0 14 0;
> #P connect 13 1 14 0;
> #P connect 14 0 15 0;
> #P connect 20 0 19 0;
> #P connect 19 0 17 0;
> #P connect 18 0 17 0;
> #P window clipboard copycount 27;
>
>


Viewing 4 posts - 1 through 4 (of 4 total)