vb中space长度相关的问题(菜鸟勿进)

m_Tns=Space(50)m_TMP=Space(50)m_USR=Space(50)OnErrorGoToErrHandleGetPrivateProfileStr... m_Tns = Space(50) m_TMP = Space(50) m_USR = Space(50) On Error GoTo ErrHandle GetPrivateProfileString "STS", "TNS", "", m_Tns, Len(m_Tns), App.Path & "\STS.INI" GetPrivateProfileString "USER", "GSMC", "", m_TMP, Len(m_TMP), App.Path & "\STS.INI" GetPrivateProfileString "USER", "CONNECT", "", m_USR, Len(m_USR), App.Path & "\STS.INI" 'MsgBox m_Tns m_Tns = Left(Trim(m_Tns), Len(Trim(m_Tns)) - 1) '① m_TMP = Left(Trim(m_TMP), Len(Trim(m_TMP)) - 1) '② m_USR = Left(Trim(m_USR), Len(Trim(m_USR)) - 1) '③ 'MsgBox m_Tns 以上程序段中为什么要有最后那三句(标有序号)呢,为什么要对m_Tns、m_TMP、m_USR 这三个变量做这样的处理呢,我使用MsgBox输出m_Tns,两次都一样啊。 展开
 我来答
阿娇三个TA2d
2014-09-30 · TA获得超过194个赞
知道答主
回答量:135
采纳率:0%
帮助的人:135万
展开全部
因为前面每个m_Tns等参数都是50个空格,读出数据之后,需要把后面的空格去掉。 为什么msgbox 不显示后面的空格呢?因为在读出的数据之后有一个ASCII为0的字符,这是字符串的结束标志,所以虽然长度还是50,但是只显示到这个字符之前。 也因此, Left(Trim(m_Tns), Len(Trim(m_Tns)) - 1)中需要-1. Trim函数是去掉字符串前后的空格,空格的ASCII是32,而字符串结束标志ASCII是0,并不是空格,所以这个标志用这个函数去不掉,只能用-1去掉了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式