Your browser does not seem to support JavaScript. As a result, your viewing experience will be diminished, and you have been placed in read-only mode.
Please download a browser that supports JavaScript, or enable it if it's disabled (i.e. NoScript).
On 01/07/2013 at 10:34, xxxxxxxx wrote:
User Information: Cinema 4D Version: R13-R14 Platform: Windows ; Language(s) : C++ ;
--------- Writing C++ plugins for C4D, how do you format a string? I want to do this:
"The file %1 exists, do you want to overwrite?", dialogFileName.GetFileString()
But haven't found a way to do it in C++.
On 01/07/2013 at 10:48, xxxxxxxx wrote:
Take a look at MessageDialog() - there are several overrides. But to do this you will need to use a resource string (good practice anyway). Of course, it's only good for short messages, but that's often all that's needed.
On 01/07/2013 at 10:52, xxxxxxxx wrote:
c4d offers string format functionality for loading strings from the resource with geloadstring.
On 01/07/2013 at 10:54, xxxxxxxx wrote:
There are a couple of ways to do this.
Here is the first one.
String = "The file " + dialogFileName.GetFileString() + " exists, do you want to overwrite?";
Another way is to use something like snprintf() but it is not a C4D way to do this
char buffer [128]; int cx = snprintf ( buffer, 128, "The file %1 exists, do you want to overwrite?", str );
//TODO: Add better way to do this...
On 01/07/2013 at 11:33, xxxxxxxx wrote:
Originally posted by xxxxxxxx c4d offers string format functionality for loading strings from the resource with geloadstring.
Originally posted by xxxxxxxx
Bingo! That's the one for me, thanks.
Originally posted by xxxxxxxx Take a look at MessageDialog() - there are several overrides. But to do this you will need to use a resource string (good practice anyway).
Take a look at MessageDialog() - there are several overrides. But to do this you will need to use a resource string (good practice anyway).
Yes, I always use resource strings. Great tip! Just using the ID - fantastic.
On 02/07/2013 at 11:53, xxxxxxxx wrote:
Here's a quick-n-dirty "printf()" type function - just make sure that you don't overflow the buffer :)...
//------------------------------------------------------------- // GePrintF() //------------------------------------------------------------- void GePrintF(const CHAR *format,...) { va_list arp; CHAR buf[1024]; va_start(arp,format); vsprintf(buf,format,arp); GePrint(buf); va_end(arp); }