关于定长字符串变量的问题

TomHeJerry 2004-04-16 02:07:35
我定义个变量
dim strTemp as string * 3
我现在只接收两位长字符串,如
strTemp = "1b"
因为len(strTemp)=4(永久)我现在想问一下,后两位是什么字符,怎么能够去掉,就是我只要"1b",我用trim(strTemp)试试,不行,没有去掉,后来一看,后两位原来是两个不可见字符。我该怎么去掉这两个不可见字符呢????谢谢了。

我的编程环境:window 2000 server + sp4
visual studio 6.0 + sp5
...全文
64 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
TomHeJerry 2004-06-17
  • 打赏
  • 举报
回复
这个问题我解决了。如三楼所说:定长字符串是一个特殊字符为结束位的。所以我们在使用的过程中可以这样处理:
dim Result as string
dim strTemp as string *10
strTemp ="abcd"
debug.print strTemp '结果是: abcd_________chr(0)
result=trim(left(strTemp,len(strTemp)-1))
debug.print result '结果是: abcd
原理就是我们使用trim函数的时候,要把最后一位剔除掉就行了。
孔南 2004-04-17
  • 打赏
  • 举报
回复
奇怪了还!我Dim a as string *3:A="CD":Debug.Print Len(A) 还是3啊
TomHeJerry 2004-04-16
  • 打赏
  • 举报
回复
Debug.Print "|" & Trim(Text1.Text) & "|"
strTemp = Trim(Text1.Text)
Debug.Print "|" & Trim(strTemp) & "|"
我使用上面的测试,怎么两个结果是一样的呀。

strTemp+chr(0)这是什么原理呀。我试了也不行的。
huwei001982 2004-04-16
  • 打赏
  • 举报
回复
strTmp + chr(0)可以把尾部的NULL去掉

之所以後面有空的,我想是因為像C一樣,要加一個"\0"值作為結束標志
cslf 2004-04-16
  • 打赏
  • 举报
回复
debug.print midb(strTemp,5,1)
debug.print midb(strTemp,6,1)
tianjy 2004-04-16
  • 打赏
  • 举报
回复
程序代码
----------------------------------
Dim a As String * 3
a = "a"
Debug.Print "|" & a & "|"
For i = 1 To Len(a)
Debug.Print "mid(a," & i & ",1)=" & Mid(a, i, 1), "asc(mid(a," & i & ",1)=" & Asc(Mid(a, i, 1))
Next
----------------------------------
输出结果
|a |
mid(a,1,1)=a asc(mid(a,1,1)=97
mid(a,2,1)= asc(mid(a,2,1)=32
mid(a,3,1)= asc(mid(a,3,1)=32

7,788

社区成员

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

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