VB6.0文本框最后一行的换行符怎么清除

VB6.0文本框最后一行的换行符怎么清除T1里写1,T2里写2,T3里不固定写A,B,C,D……最后显示在T4里。
Private Sub Command1_Click()
Dim AA
AA = Split(Text3, Chr(13))
If UBound(AA) > 0 Then
For i = 0 To UBound(AA)
Text4 = Text4 & Text1 & AA(i) & Text2 & vbCrLf
Next
End If
End Sub

Text3里最后一行结尾有两个换行符怎么在Text4里显示之前清理掉。

不是有两个换行符,而是因为“回车换行符”是由两个特殊字符构成的,一个是回车符(Chr(13),常数为vbCr),一个是换行符(Chr(10),常数为vbLf),如果你只按回车符来分割成数组,那么最后就会多出一个换行符,这个字符会被VB自动解析为回车换行符。

应该把 AA = Split(Text3, Chr(13)) 改为 AA = Split(Text3, vbCrLf) ,这样就没问题了。

下面是另一种实现方法:

Private Sub Command1_Click()
    Dim AA() As String
    AA = Split(Text3, vbCrLf)
    For i = 0 To UBound(AA)
        AA(i) = Text1 & AA(i) & Text2
    Next
    Text3 = Join(AA, vbCrLf)
End Sub

追问

是text3输入到最后会加两个回车,例如:
A
B
C

这样输入

就是在上面的命令基础上清楚结尾的换行

我的命令打错了是
AA = Split(Text3,Chr(13)&Chr(10))

直白点就是最后的两个回车不是命令造成的是手动打上去的,请问怎么在传到t4之前把结尾两个回车删掉

追答

两个回车应该是其中一个是行末本身的回车,另一个则是 Text4 = Text4 & Text1 & AA(i) & Text2 & vbCrLf 造成的,因为它始终会在每行后面添加一个回车的。可以通过下面的方式来处理:

If i > 0 Then Text4 = Text4 & vbCrLf
Text4 = Text4 & Text1 & AA(i) & Text2

或者:

Text4 = Text4 & Text1 & AA(i) & Text2
If i < UBound(AA) Then Text4 = Text4 & vbCrLf

这样的话,最后就只剩一个回车。如果想把这个回车也去掉,可以这样:

For i = 0 To UBound(AA) - 1
    If i > 0 Then Text4 = Text4 & vbCrLf
    Text4 = Text4 & Text1 & AA(i) & Text2
Next

如果想再搞得智能一些,可以把所有空行忽略,这样就不需要关心末尾有几个回车的问题了:

For i = 0 To UBound(AA)
    If AA(i) <> "" Then
        If Text4 <> "" Then Text4 = Text4 & vbCrLf
        Text4 = Text4 & Text1 & AA(i) & Text2
    End If
Next

追问

吊炸天,明天试试。

温馨提示:答案为网友推荐,仅供参考
相似回答