我有一个“很长很长”的结构要存在CSring中。但写得很难看,有什么好方法?1: 一行太长了
strResult.Format("这里...是个很长的字符串",参数1,... ,参数n);
 
2: 用“\”分开,但其它行要顶格写,否则空格也包含到串了
strResult.Format("这 \   
里 \
... \
是个很长的字符串",参数1,... ,参数n); 3:太罗嗦
strTemp.Format("这", 参数1);
strResult += strTemp;
...
...
strTemp.Format("是个很长的字符串", 参数n);
strResult += strTemp;

解决方案 »

  1.   

    在资源的String Table里声明一个string,
    然后strResult.LoadString()The following example demonstrates the use of CString::LoadString.// example for CString::LoadString
    #define IDS_FILENOTFOUND 1
    CString s;
    if (! s.LoadString( IDS_FILENOTFOUND ))
    {
        AfxMessageBox("Error Loading String: IDS_FILENOTFOUND");
        ...
    }
      

  2.   

    to:rivershan(笨猫)(
    这样的话,剩余参数的顺序容易弄错,还有其它办法吗?
      

  3.   

    如果HTML格式可以接受的话,可以用XSLT来把XML数据格式化成HTML……
    另外一种方式类似DOS的环境变量在批处理中的效果,进行特殊格式的转义序列转换,例如把"%windir%"替换成"C:\Windows"
      

  4.   

    这样写应该能好一些strResult.Format("这里"
                     "...是"
                     "个很长"
                     "的字符串",
                     参数1,
                     ... ,
                     参数n);