本帖最后由 bcrun 于 2014-07-04 08:04:13 编辑

解决方案 »

  1.   

    那是因为你没有把MH中的NULL字符去掉的原因吧!
      

  2.   

    问好!舉杯邀明月 ,几年没来csdn了,终于看到了一个熟人了,谢谢。最近想做一个数控铣床宏程序生成器,卡在这个字符串连接问题上几天了。实在是找不出原因来,就上来提问了。去掉MH中的NULL字符的语句是什么啊?
      

  3.   

    现在改为[code=vbHCXedit.Text1 = HCXedit.Text1 & vbCrLf & "#" & LTrim(MH) & "=" & Trim(Text1(i)) ][/code]问题依然存在。没改动之前的效果如下:
    #1
    #2
    #3
    期望效果如下
    #1=1200
    #2=352
    #3=80
    本来还要加上对每一行的作用进行描述的,为了测试没有加上去。
      

  4.   

    HCXedit.Text1 = HCXedit.Text1 & vbCrLf & "#" & LTrim(MH) & "=" & Trim(Text1(i)) 
      

  5.   


        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
      

  6.   

    mh能正确返回值,不能作连接的是= 和 text1(i)文本框的内容,设置断点时,text1(i)能返回VAL
      

  7.   

    既然是数控程序,很明显你的 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
      

  8.   

    谢谢Tiger_Zhao ,谢谢楼上几位。看到一些非常熟悉的。真的很感谢你们,
    请多多指教,附加问题:
     dc = GetPrivateProfileString(HCXedit.List1.Text, "描述" & i, vbNullString, MS, nSize, FilePathName)
    ,“描述”是对宏变量的作用进行说明的一串中文字符串,现在的问题是输入到文本框出乱码。
    现有的英文版本也会出现这种情况