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,两次都一样啊。
展开
1个回答
展开全部
因为前面每个m_Tns等参数都是50个空格,读出数据之后,需要把后面的空格去掉。 为什么msgbox 不显示后面的空格呢?因为在读出的数据之后有一个ASCII为0的字符,这是字符串的结束标志,所以虽然长度还是50,但是只显示到这个字符之前。 也因此, Left(Trim(m_Tns), Len(Trim(m_Tns)) - 1)中需要-1. Trim函数是去掉字符串前后的空格,空格的ASCII是32,而字符串结束标志ASCII是0,并不是空格,所以这个标志用这个函数去不掉,只能用-1去掉了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询