为什么经过vb字符串的space()设定大小,赋值之后,再用trim()取消其前后空格,取其长度要比实际一?

peacock_king 2002-11-16 11:22:07
如题
...全文
63 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zyl910 2002-11-17
  • 打赏
  • 举报
回复
Chr(0):C语言字符串的 \0 字符串终结符
peacock_king 2002-11-17
  • 打赏
  • 举报
回复
谢谢:)
dsclub 2002-11-16
  • 打赏
  • 举报
回复
dim a as string

a=space(5)

a=trim(a)

msgbox len(a)

,,,,,,,,,,

0

any problem?
peacock_king 2002-11-16
  • 打赏
  • 举报
回复
写错了,是“为何比实际大一?”
junwhj 2002-11-16
  • 打赏
  • 举报
回复
这只能怪你自已学艺不精了,API函数中返回的字符串一般以Chr(0)结束,可以不用Trim函数而,用下面的方法即可:
str = Left(str, InStr(1, str, Chr(0)) - 1)
peacock_king 2002-11-16
  • 打赏
  • 举报
回复
我是用windows api调用“文件打开对话框”,然后返回所选中的文件名,

要取得文件名的字符串变量,必须先以space()确定它的大小:space(254)

结果返回后,我用trim(字符串变量),再把它添到文本框,显示没问题,

然而一调用getOpenFileName(),就找不到文件(这个函数是没问题的,因为调用别的文件都很顺利)

经过调试,我发现包含文件名的字符串的长度比实际字符串大一,所以实在没办法,哈哈,你们想不到我用的方法有多苯,

把有问题的字符串添到文本框里,然后,再用另一个字符串变量=text1.text

一切OK!!!

真是荒谬!!!!!!!
网络老男孩了 2002-11-16
  • 打赏
  • 举报
回复
不可能吧....
w18ily 2002-11-16
  • 打赏
  • 举报
回复
Private Sub Form_Load()
Dim strI As String
strI = "567"
strI = Space(5) & strI
Debug.Print Len(Trim(strI))
End Sub

3!
w18ily 2002-11-16
  • 打赏
  • 举报
回复
没有!!

7,762

社区成员

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

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