? format("0123456789",  "@-@@-@@@!")            (1)
4-56-789
? format("0123456789",  "@-@@-@@@")             (2)
0-12-3456789
? format("012",  "@-@@-@@@!")                   (3)
0-12-   
? format("012",  "@-@@-@@@")                    (4)
 -  -012
上面的结果是我在vb6的立即窗口得到的结果,我对格式化字符"!"有点不明白。
MSDN上的说法是:
! - 强制由左而右填充字符占位符。缺省值是由右而左填充字符占位符。 
上面的(3)和(4)正如MSDN所说,但(1)和(2)却不是这样。
为什么???
我的vb版本已经打了sp6补丁。

解决方案 »

  1.   

    把我的想法也贴上吧:
    我认为
    (1)当要格式化的串长度小于占位符的个数时,不加"!"是右->左,加"!"是左->右;
    (2)当要格式化的串长度大于占位符的个数时,不加"!"是左->右,加"!"是右->左;
    (3)当要格式化的串长度等于占位符的个数时,采用任何一种顺序结果都一样。但与MSDN上的说法为何不一致呢?
    我最近由于工作需要正在VC下实现一个与vb6的format函数功能一样的函数,
    客户将来差不多是根据MSDN上的说明来验收的,遇到这个问题,特来请教。时间长不用vb了,好多东西都不记得了。