format格式化字符串的问题

jtkkjtkk 2008-01-22 11:49:53
? 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补丁。
...全文
106 点赞 收藏 4
写回复
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
东方之珠 2008-01-22
up
回复
jtkkjtkk 2008-01-22
把我的想法也贴上吧:
我认为
(1)当要格式化的串长度小于占位符的个数时,不加"!"是右->左,加"!"是左->右;
(2)当要格式化的串长度大于占位符的个数时,不加"!"是左->右,加"!"是右->左;
(3)当要格式化的串长度等于占位符的个数时,采用任何一种顺序结果都一样。

但与MSDN上的说法为何不一致呢?
我最近由于工作需要正在VC下实现一个与vb6的format函数功能一样的函数,
客户将来差不多是根据MSDN上的说明来验收的,遇到这个问题,特来请教。时间长不用vb了,好多东西都不记得了。

回复
AnnaBear 2008-01-22
!是从右向左取的吧
刚才问了问同事好像是这样的咧^_^
回复
wxrwan 2008-01-22
DING
回复
发动态
发帖子
VB基础类
创建于2007-09-28

7453

社区成员

VB 基础类
申请成为版主
社区公告
暂无公告