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补丁。
...全文
150 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
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

7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧