奇怪的字符串连接有关问题
奇怪的字符串连接问题
------解决方案--------------------
那是因为你没有把MH中的NULL字符去掉的原因吧!
------解决方案--------------------
------解决方案--------------------
既然是数控程序,很明显你的 MH 中含有字符 \0,比如下面文本框中显示的就是 #1 而不是 #1=1200。
也可以用 Len(LTrim(MH)) 不是 1 确认。
解决方法也简单,用 Replace 函数替换掉。
Private Sub Command2_Click()
Dim nStr As String, nSize As Long
Dim Mcount As String
Dim MH As String
Dim MS As String
nSize = 255
nStr = String(nSize, 0)
Mcount = String(nSize, 0)
MH = String(nSize, 0)
MS = String(nSize, 0)
ds = GetPrivateProfileString(HCXedit.List1.Text, "条目数", vbNullString, Mcount, nSize, FilePathName)
For i = 1 To Mcount
dl = GetPrivateProfileString(HCXedit.List1.Text, "H" & i, vbNullString, MH, nSize, FilePathName)
dc = GetPrivateProfileString(HCXedit.List1.Text, "描述" & i, vbNullString, MS, nSize, FilePathName)
a = Text1(i) '此处设置断点,a的返回值正确
HCXedit.Text1 = HCXedit.Text1 & vbCrLf & "#" & MH & "=" & Text1(i) 'HCXedit.Text1文本框做字符串连接时,并没有把 = 和 text(1)值做连接
'不能正常显示
Next i '这段代代码的目的是读取 ini 配置文件,调试中各项值能正常返回
End Sub
------解决方案--------------------
那是因为你没有把MH中的NULL字符去掉的原因吧!
------解决方案--------------------
Dim nSize As Long
Dim Mcount As String
Dim MH As String
Dim MS As String
nSize = 255
Mcount = Space(nSize)
ds = GetPrivateProfileString(HCXedit.List1.Text, "条目数", vbNullString, Mcount, nSize, FilePathName)
For i = 1 To Val(Mcount)
MH = Space(nSize)
dl = GetPrivateProfileString(HCXedit.List1.Text, "H" & i, vbNullString, MH, nSize, FilePathName)
If Trim(MH) > "" Then
MS = Space(nSize)
dc = GetPrivateProfileString(HCXedit.List1.Text, "描述" & i, vbNullString, MS, nSize, FilePathName)
Text1(i) = Trim(MS)
HCXedit.Text1 = HCXedit.Text1 & vbCrLf & "#" & Trim(MH) & "=" & Text1(i)
End If
Next i
------解决方案--------------------
既然是数控程序,很明显你的 MH 中含有字符 \0,比如下面文本框中显示的就是 #1 而不是 #1=1200。
Private Sub Form_Load()
Dim MH As String
MH = " 1" & Chr(0)
Text1 = "#" & LTrim(MH) & "=" & Trim(" 1200 ")
End Sub
也可以用 Len(LTrim(MH)) 不是 1 确认。
解决方法也简单,用 Replace 函数替换掉。
Private Sub Form_Load()
Dim MH As String
MH = " 1" & Chr(0)
Text1 = "#" & LTrim(Replace(MH, Chr(0), vbNullString)) & "=" & Trim(" 1200 ")
End Sub